feat: manage rooms locally

This commit is contained in:
Ryan Di
2025-05-29 16:19:20 +10:00
parent 7cad3645a0
commit 48ec3716ca
2 changed files with 213 additions and 0 deletions
+20
View File
@@ -83,6 +83,7 @@ import {
saveUsernameToLocalStorage,
} from "../data/localStorage";
import { resetBrowserStateVersions } from "../data/tabSync";
import { roomManager } from "../data/roomManager";
import { collabErrorIndicatorAtom } from "./CollabError";
import Portal from "./Portal";
@@ -547,6 +548,25 @@ class Collab extends PureComponent<CollabProps, CollabState> {
});
this.saveCollabRoomToFirebase(getSyncableElements(elements));
// Save room data to local room manager for new rooms
try {
await roomManager.addRoom(
roomId,
roomKey,
getCollaborationLink({ roomId, roomKey }),
"", // User can edit this later
);
} catch (error) {
console.warn("Failed to save room to local storage:", error);
}
} else {
// Update access time for existing rooms
try {
await roomManager.updateRoomAccess(existingRoomLinkData.roomId);
} catch (error) {
console.warn("Failed to update room access time:", error);
}
}
// fallback in case you're not alone in the room but still don't receive