diff --git a/website/src/lib/components/App.svelte b/website/src/lib/components/App.svelte
index de791aaf..1a338b3b 100644
--- a/website/src/lib/components/App.svelte
+++ b/website/src/lib/components/App.svelte
@@ -8,6 +8,10 @@
import Toolbar from '$lib/components/toolbar/Toolbar.svelte';
import LayerControl from '$lib/components/layer-control/LayerControl.svelte';
import { Toaster } from '$lib/components/ui/sonner';
+
+ import { settings } from '$lib/db';
+
+ const { verticalFileView } = settings;
@@ -19,16 +23,20 @@
-
-
-
+ {#if !$verticalFileView}
+
+
+
+ {/if}
-
+ {#if $verticalFileView}
+
+ {/if}
diff --git a/website/src/lib/components/FileListItem.svelte b/website/src/lib/components/FileListItem.svelte
deleted file mode 100644
index e9fe7ab0..00000000
--- a/website/src/lib/components/FileListItem.svelte
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-{#if $file}
- {
- if (!get(selectedFiles).has($file.file._data.id)) {
- get(selectFiles).select($file.file._data.id);
- }
- }}
- >
-
-
-
-
-
-
-
- {$_('menu.duplicate')}
-
-
-
- {$_('menu.delete')}
-
-
-
-
-{/if}
diff --git a/website/src/lib/components/Menu.svelte b/website/src/lib/components/Menu.svelte
index 5073fd6b..2eff5990 100644
--- a/website/src/lib/components/Menu.svelte
+++ b/website/src/lib/components/Menu.svelte
@@ -22,18 +22,19 @@
Zap,
Thermometer,
Sun,
- Moon
+ Moon,
+ Rows3
} from 'lucide-svelte';
import {
map,
- selectedFiles,
exportAllFiles,
exportSelectedFiles,
triggerFileInput,
selectFiles,
createFile
} from '$lib/stores';
+ import { selection } from '$lib/components/file-list/Selection';
import { derived } from 'svelte/store';
import { canUndo, canRedo, dbUtils, fileObservers, settings } from '$lib/db';
@@ -47,6 +48,7 @@
distanceUnits,
velocityUnits,
temperatureUnits,
+ verticalFileView,
mode,
currentBasemap,
previousBasemap,
@@ -113,16 +115,13 @@
{$_('menu.load_drive')}
-
+
{$_('menu.duplicate')}
-
+
{$_('menu.export')}
@@ -154,7 +153,7 @@
-
+
{$_('menu.delete')}
@@ -173,6 +172,10 @@
{$_('menu.view')}
+
+ {$_('menu.vertical_file_view')}
+
+
{$_('menu.switch_basemap')}
diff --git a/website/src/lib/components/collapsible-tree/CollapsibleTreeNode.svelte b/website/src/lib/components/collapsible-tree/CollapsibleTreeNode.svelte
index f57d0c89..386a135d 100644
--- a/website/src/lib/components/collapsible-tree/CollapsibleTreeNode.svelte
+++ b/website/src/lib/components/collapsible-tree/CollapsibleTreeNode.svelte
@@ -2,26 +2,30 @@
import * as Collapsible from '$lib/components/ui/collapsible';
import { Button } from '$lib/components/ui/button';
import { ChevronDown, ChevronLeft, ChevronRight } from 'lucide-svelte';
- import { getContext } from 'svelte';
+ import { getContext, setContext } from 'svelte';
import type { Writable } from 'svelte/store';
- export let id: string;
+ export let id: string | number;
let defaultState = getContext<'open' | 'closed'>('collapsible-tree-default-state');
let open = getContext>>('collapsible-tree-state');
let side = getContext<'left' | 'right'>('collapsible-tree-side');
let margin = getContext('collapsible-tree-margin');
let nohover = getContext('collapsible-tree-nohover');
+ let parentId = getContext('collapsible-tree-parent-id');
+
+ let fullId = `${parentId}.${id}`;
+ setContext('collapsible-tree-parent-id', fullId);
open.update((value) => {
- if (!value.hasOwnProperty(id)) {
- value[id] = defaultState === 'open';
+ if (!value.hasOwnProperty(fullId)) {
+ value[fullId] = defaultState === 'open';
}
return value;
});
-
+