feat: simplify App component and enhance Canvas collaboration features #31
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
1.Local-First Experience
-Removed the “Join Room” modal from automatically appearing on page load.
-The app now opens directly to a blank canvas ready for drawing.
-No socket connections or events are triggered until collaboration is enabled.
2.Collaborate Button
-Added a new “Collaborate” / “Join Room” button in the toolbar.
-When clicked, this opens the room-joining modal where the user can enter a room ID to start collaborating.
3.Dynamic Collaboration Toggle
-Once a user joins or creates a room:
-WebSocket communication is activated.
-All drawing actions are synchronized in real time across connected clients.
-If not joined, drawing actions stay completely local and are not emitted.
4. Disabled Sockets in Local Mode
-In the default local mode, socket.emit() calls are conditionally blocked (if (joined && socket) checks added).
Semver Changes
Issues
Checklist