-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make Excalidraw Modal render interacting user specific #4635
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Wouldn't advice storing ui state on node itself as it might backfire. Eg here you filter it out from collab but it'll be stored in undo stack for non collab. Maybe we can come up with a better approach |
Internally we did following: |
Gerard offered the excludedProperties as an approach, which seemed straightforward to me. Your suggestion sounds better, but I'm not sure how to skip propagation of the show modal event to the other collaborators. If you have this solved already, might be easier to just port the changes over. |
In this case the Node would not be the responsible to render the modal, instead the plugin would be. Admittedly, this is a much safer approach since the state is guaranteed to be offline. I wonder how either of these approaches would work with collaborative Excalidraw but this is a much more complex piece of work. @fantactuka, @acywatson, I think it's worth a discussion on when to use offline properties and the tooling we want to provide around them. It's nice that we added the ability to customize what's synced over the wire but:
|
Do you recall what was initial usecase when it was added? With non-collab history and persisted content (when lexical json is stored), I wonder if it's useful or whether it can be replaced by plugin-stored state |
AFAIK the public |
Waiting on @fantactuka for best practice around handling local state |
Fixes #1788
Before when an Excalidraw node is added, the popup will show up for all collaborators, not just the creating user. Which would lead to a number of other issues, as shown in the Before video. Skipping the syncing for a showModal property on the ExcalidrawNode, allows for independent editing.
Before:
excalidraw_open_before.mp4
After:
excalidraw_popup_after.mp4