Spaces:
Sleeping
Sleeping
| // storageUtils.ts | |
| export interface RoomMetadata { | |
| id: string | |
| name: string | |
| lastVisited: number | |
| } | |
| const STORAGE_KEY = 'tldraw_saved_rooms' | |
| export const getRooms = (): RoomMetadata[] => { | |
| try { | |
| const stored = localStorage.getItem(STORAGE_KEY) | |
| return stored ? JSON.parse(stored) : [] | |
| } catch { | |
| return [] | |
| } | |
| } | |
| export const saveRoom = (id: string, name?: string) => { | |
| const rooms = getRooms() | |
| const existing = rooms.find(r => r.id === id) | |
| const roomName = name || existing?.name || `Untitled Board` | |
| // Create updated list with current room at the top | |
| const updated = [ | |
| { id, name: roomName, lastVisited: Date.now() }, | |
| ...rooms.filter(r => r.id !== id) | |
| ] | |
| localStorage.setItem(STORAGE_KEY, JSON.stringify(updated)) | |
| return updated | |
| } | |
| export const deleteRoom = (id: string) => { | |
| const rooms = getRooms().filter(r => r.id !== id) | |
| localStorage.setItem(STORAGE_KEY, JSON.stringify(rooms)) | |
| return rooms | |
| } | |
| export const updateRoomName = (id: string, newName: string) => { | |
| const rooms = getRooms() | |
| const index = rooms.findIndex(r => r.id === id) | |
| if (index !== -1) { | |
| rooms[index].name = newName | |
| rooms[index].lastVisited = Date.now() | |
| localStorage.setItem(STORAGE_KEY, JSON.stringify(rooms)) | |
| } | |
| return rooms | |
| } |