* Removes localStorage entries for workspace IDs not in the provided list. * Call from effects or event handlers, not during render.
(validIds: Set<string>)
| 139 | * Call from effects or event handlers, not during render. |
| 140 | */ |
| 141 | static prune(validIds: Set<string>): void { |
| 142 | const map = WorkspaceRecencyStorage.getAll() |
| 143 | let pruned = false |
| 144 | for (const id of Object.keys(map)) { |
| 145 | if (!validIds.has(id)) { |
| 146 | delete map[id] |
| 147 | pruned = true |
| 148 | } |
| 149 | } |
| 150 | if (pruned) { |
| 151 | BrowserStorage.setItem(WorkspaceRecencyStorage.KEY, map) |
| 152 | } |
| 153 | } |
| 154 | |
| 155 | /** |
| 156 | * Sorts workspaces by recency (most recent first). |
no test coverage detected