diff --git a/tools/ui/src/lib/components/app/models/ModelsManager/ModelsManagerModelsTable.svelte b/tools/ui/src/lib/components/app/models/ModelsManager/ModelsManagerModelsTable.svelte index 8c7292fdfe..8e48faa430 100644 --- a/tools/ui/src/lib/components/app/models/ModelsManager/ModelsManagerModelsTable.svelte +++ b/tools/ui/src/lib/components/app/models/ModelsManager/ModelsManagerModelsTable.svelte @@ -25,14 +25,11 @@ ModelAvatar, ModelContext, ModelId, - ModelLoadControl, - ModelsSection + ModelLoadControl } from '$lib/components/app'; import { DialogConfirmDownload } from '$lib/components/app/dialogs'; import { Badge } from '$lib/components/ui/badge'; - import { Checkbox } from '$lib/components/ui/checkbox'; import { Input } from '$lib/components/ui/input'; - import { Label } from '$lib/components/ui/label'; import { ModelCapability, ModelDownloadConfirmAction, ServerModelStatus } from '$lib/enums'; import { modelsStore } from '$lib/stores'; import type { ModelOption } from '$lib/types/models'; @@ -65,14 +62,9 @@ let deleteOpen = $state(false); /** Repos whose quants are folded away; the rest show them. */ const collapsedQuants = new SvelteSet(); - /** Header mode: families start open, this tracks the ones folded away. */ - const collapsedFamilies = new SvelteSet(); - /** Row mode: families start collapsed, this tracks the ones opened. */ - const expandedFamilies = new SvelteSet(); - /** Sections rendered as collapsible table rows instead of headers. */ - let collapsibleRows = $state(false); const collapsedSections = new SvelteSet(['hidden']); - /** Sections with their repos folded into families, when that view is on. */ + /** Families start collapsed, this tracks the ones the user opened. */ + const expandedFamilies = new SvelteSet(); /** Sections that list their models straight, without folding them into families. */ const FLAT_SECTIONS = new Set(['favorites', 'loaded']); let sections = $derived( @@ -96,17 +88,11 @@ } } - function isFamilyExpanded(key: string): boolean { - return collapsibleRows ? expandedFamilies.has(key) : !collapsedFamilies.has(key); - } - function toggleFamily(key: string): void { - const folded = collapsibleRows ? expandedFamilies : collapsedFamilies; - - if (folded.has(key)) { - folded.delete(key); + if (expandedFamilies.has(key)) { + expandedFamilies.delete(key); } else { - folded.add(key); + expandedFamilies.add(key); } } @@ -413,7 +399,7 @@ {/snippet} {#snippet familyRow(family: ModelFamilyGroup, indent = 0)} - {@const isExpanded = isFamilyExpanded(family.key)} + {@const isExpanded = expandedFamilies.has(family.key)} {@const countLabel = `${family.entries.length} model${family.entries.length === 1 ? '' : 's'}`}
@@ -424,38 +410,20 @@ role="button" tabindex="0" > - {#if collapsibleRows} - - - + + - - {family.label} + + {family.label} - - {countLabel} - - + {countLabel} - {:else} - - - - {family.label} - - {countLabel} - - {/if} + @@ -485,14 +453,6 @@
- - - - - - {summary}
@@ -513,63 +473,24 @@
{#each sections as group (group.key)} {#if group.items.length > 0} - {#snippet groupIcon()} - {#if group.kind === 'favorites'} - - {:else if group.kind === 'loaded'} - - {:else if group.kind === 'hidden'} - - {:else if group.kind === 'local'} - + {@render sectionRow(group)} + + {#if !collapsedSections.has(group.key)} + {#if group.flat} + {#each group.items as entry (entry.key)} + {@render entryTree(entry, 40)} + {/each} {/if} - {/snippet} - {#if collapsibleRows} - {@render sectionRow(group)} + {#each group.families as family (family.key)} + {@render familyRow(family, 20)} - {#if !collapsedSections.has(group.key)} - {#if group.flat} - {#each group.items as entry (entry.key)} + {#if expandedFamilies.has(family.key)} + {#each family.entries as entry (entry.key)} {@render entryTree(entry, 40)} {/each} {/if} - - {#each group.families as family (family.key)} - {@render familyRow(family, 20)} - - {#if isFamilyExpanded(family.key)} - {#each family.entries as entry (entry.key)} - {@render entryTree(entry, 40)} - {/each} - {/if} - {/each} - {/if} - {:else} - - {#if group.flat} - {#each group.items as entry (entry.key)} - {@render entryTree(entry, 16)} - {/each} - {/if} - - {#each group.families as family (family.key)} - {@render familyRow(family)} - - {#if isFamilyExpanded(family.key)} - {#each family.entries as entry (entry.key)} - {@render entryTree(entry, 16)} - {/each} - {/if} - {/each} - + {/each} {/if} {/if} {/each}