From 035ee3982a68df99e657943803d6ea47cd0756bf Mon Sep 17 00:00:00 2001 From: Aleksander Grygier Date: Mon, 28 Sep 2026 11:17:12 +0200 Subject: [PATCH] ui : offer manage models from the selector footer The reasoning panel used to sit in the selector's sticky footer, and the slot is empty now. It carries Manage models instead, in the dropdown and at the foot of the mobile sheet, which closes the selector and then opens the manager so the dialog takes focus cleanly. Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash --- .../ModelsManager/ModelsManagerFilters.svelte | 2 +- .../ModelsSelectorDropdown.svelte | 23 +++++++++++++++++-- .../ModelsSelector/ModelsSelectorSheet.svelte | 23 +++++++++++++++++-- 3 files changed, 43 insertions(+), 5 deletions(-) diff --git a/tools/ui/src/lib/components/app/models/ModelsManager/ModelsManagerFilters.svelte b/tools/ui/src/lib/components/app/models/ModelsManager/ModelsManagerFilters.svelte index 7c0eacff02..bd8c1a6d55 100644 --- a/tools/ui/src/lib/components/app/models/ModelsManager/ModelsManagerFilters.svelte +++ b/tools/ui/src/lib/components/app/models/ModelsManager/ModelsManagerFilters.svelte @@ -171,7 +171,7 @@ import ModelLoadHighlight from '../ModelLoadHighlight.svelte'; - import { ChevronDown, Loader2 } from '@lucide/svelte'; + import { Box, ChevronDown, Loader2 } from '@lucide/svelte'; import { DropdownMenuSearchable, ModelId, @@ -19,7 +19,7 @@ } from '$lib/constants'; import { KeyboardKey, ServerModelStatus } from '$lib/enums'; import { useModelsSelector } from '$lib/hooks/use-models-selector.svelte'; - import { modelsStore, settingsStore } from '$lib/stores'; + import { modelsStore, settingsStore, uiStore } from '$lib/stores'; import { modelLoadFraction } from '$lib/utils'; import { rawModelId } from '$lib/utils/model-option-id'; @@ -133,6 +133,13 @@ highlightedId = visualOrder[index]; } + function handleManageModels() { + isOpen = false; + + // let the menu finish closing before the dialog takes focus + setTimeout(() => uiStore.openModelsManager(), 0); + } + function handleAddBackend() { isOpen = false; @@ -364,6 +371,18 @@ {showOrgName} /> + + {#snippet footer()} + + + + + + Manage models + + + {/snippet} diff --git a/tools/ui/src/lib/components/app/models/ModelsSelector/ModelsSelectorSheet.svelte b/tools/ui/src/lib/components/app/models/ModelsSelector/ModelsSelectorSheet.svelte index a576822e38..a42c6857bd 100644 --- a/tools/ui/src/lib/components/app/models/ModelsSelector/ModelsSelectorSheet.svelte +++ b/tools/ui/src/lib/components/app/models/ModelsSelector/ModelsSelectorSheet.svelte @@ -1,6 +1,6 @@