diff --git a/src/lib/components/chat/FileNav.svelte b/src/lib/components/chat/FileNav.svelte index d4b06a1cf3..04bcee7a7f 100644 --- a/src/lib/components/chat/FileNav.svelte +++ b/src/lib/components/chat/FileNav.svelte @@ -17,8 +17,6 @@ import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'; import ArrowRight from '$lib/components/icons/ArrowRight.svelte'; import { toast } from 'svelte-sonner'; - import Plus from '$lib/components/icons/Plus.svelte'; - import Folder from '$lib/components/icons/Folder.svelte'; import { getContext, onMount, onDestroy, tick } from 'svelte'; import type { Readable } from 'svelte/store'; import type { i18n as I18n } from 'i18next'; @@ -344,6 +342,7 @@ let sortBy: SortMode = 'name'; let sortAsc = true; let showHidden = false; + let viewMode: 'grid' | 'list' = 'list'; let visibleEntries: BrowserRow[] = []; let expandedDirs: Set = new Set(); let treeCache: Map = new Map(); @@ -462,9 +461,23 @@ }); $: visibleEntries = withRowIndexes( - buildVisibleRows(entries, currentPath, expandedDirs, treeCache, showHidden, sortBy, sortAsc) + buildVisibleRows( + entries, + currentPath, + viewMode === 'list' ? expandedDirs : new Set(), + treeCache, + showHidden, + sortBy, + sortAsc + ) ); + const changeViewMode = (mode: 'grid' | 'list') => { + clearSelection(); + viewMode = mode; + localStorage.setItem('fileNav:viewMode', mode); + }; + // ── Navigation history ────────────────────────────────────────────── type NavEntry = { path: string; file: string | null }; let navHistory: NavEntry[] = []; @@ -1796,6 +1809,7 @@ // ── Lifecycle ──────────────────────────────────────────────────────── onMount(() => { showHidden = localStorage.getItem('fileNav:showHidden') === 'true'; + viewMode = localStorage.getItem('fileNav:viewMode') === 'grid' ? 'grid' : 'list'; const terminal = getTerminal(); let handledDisplayFile = false; @@ -2028,6 +2042,8 @@ {sortBy} {sortAsc} {showHidden} + viewMode={isSearching ? null : viewMode} + onViewModeChange={changeViewMode} onGoBack={goBack} onGoForward={goForward} onNavigate={loadDir} @@ -2527,18 +2543,25 @@ {/if} {#if visibleEntries.length > 0 || creatingFolder || creatingFile} -