Spaces:
Sleeping
Sleeping
File size: 1,355 Bytes
2ec5eb1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | // 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
} |