diff --git a/website/src/lib/components/collapsible-tree/utils.svelte.ts b/website/src/lib/components/collapsible-tree/utils.svelte.ts index 0db3193ca..047e6778d 100644 --- a/website/src/lib/components/collapsible-tree/utils.svelte.ts +++ b/website/src/lib/components/collapsible-tree/utils.svelte.ts @@ -28,6 +28,16 @@ export class CollapsibleTreeState { } return this._open[id]; } + + /** The node `from` is now `to` (it was renamed or moved): it stays open or closed, and so do the nodes in it. */ + move(from: string, to: string) { + for (const id of Object.keys(this._open)) { + if (id === from || id.startsWith(`${from}.`)) { + this._open[to + id.slice(from.length)] = this._open[id]; + delete this._open[id]; + } + } + } } /** diff --git a/website/src/lib/components/explorer/Explorer.svelte b/website/src/lib/components/explorer/Explorer.svelte index 557d8081f..573f8b8ec 100644 --- a/website/src/lib/components/explorer/Explorer.svelte +++ b/website/src/lib/components/explorer/Explorer.svelte @@ -1,16 +1,23 @@