add room owner check to room manager

This commit is contained in:
Ryan Di
2025-06-02 13:38:39 +10:00
parent ed63af1ad8
commit f71c200106
2 changed files with 22 additions and 15 deletions

View File

@@ -176,6 +176,24 @@ class RoomManager {
}
}
async isRoomOwnedByUser(url: string): Promise<boolean> {
try {
const rooms = await this.loadRooms();
const _url = new URL(url);
const match = _url.hash.match(/room=([^,]+),([^&]+)/);
if (!match) {
return false;
}
const [, roomId] = match;
return rooms.some((room) => room.roomId === roomId);
} catch (error) {
console.warn("Failed to check room ownership:", error);
return false;
}
}
async getCurrentRoom(): Promise<CollabRoom | null> {
const rooms = await this.loadRooms();
if (rooms.length === 0) {

View File

@@ -75,23 +75,12 @@ const ActiveRoomDialog = ({
const [isRoomOwner, setIsRoomOwner] = useState(false);
useEffect(() => {
roomManager
.getCurrentRoom()
.then((room) => {
if (room) {
const _room = new URL(activeRoomLink);
const match = _room.hash.match(/room=([^,]+),([^&]+)/);
if (match) {
const [, roomId] = match;
setIsRoomOwner(roomId === room.roomId);
} else {
setIsRoomOwner(false);
}
} else {
setIsRoomOwner(false);
}
.isRoomOwnedByUser(activeRoomLink)
.then((isOwned) => {
setIsRoomOwner(isOwned);
})
.catch((error) => {
console.error("Error getting current room:", error);
console.warn("Failed to check room ownership:", error);
setIsRoomOwner(false);
});
}, [activeRoomLink]);