Closed LuckynaSan closed 11 months ago
Good find! Thanks for the super detailed report, I was able to reproduce this at first try.
Looks like this is where the crash happens:
@swissspidy When user perform undo operation, in context of this issue (GroupLayer) - deleteGroupById
is not called and thus useStory
state is not updated! This is the cause of the issue:
https://github.com/GoogleForCreators/web-stories-wp/blob/a3c73c2942cf1966c5e0073f6478d7b89fed8134/packages/story-editor/src/components/panels/layer/useLayers.js#L29-L35
But, when we perform Delete group
by right-clicking on the group, deleteGroupById
is called and thus triggers story state change and all dependencies are recomputed again.
We may need to update story state somehow in the below functions - which will trigger updating of story state and solves this issue:
I'm afraid that's not possible. The whole history provider is explicitly 100% decoupled from story provider and doesn't really know about it. So we'd need to find another way for this.
What makes the final story state be different when pressing undo? Can we simply add some safeguards to the relevant components to avoid throwing errors?
When I briefly looked at it last time, I was wondering if it had anything to do with how LayerList
is constructed and how ReorderableGroup
is memoized. Maybe that is a starting point?
Bug Description
Editor crashes when the layers menu is open, apply group layers on elements, and keying CMD+Z
Crash ReportTypeError: Cannot destructure property 'name' of 'n[t]' as it is undefined.
Expected Behaviour
Editor does not crash.
Steps to Reproduce
Screenshots
https://github.com/GoogleForCreators/web-stories-wp/assets/66372350/148f92da-2023-41c6-a865-a58b1706c193
Additional Context