From 1e05852cdb84c09893ba6a9dd6c7099744fb39e3 Mon Sep 17 00:00:00 2001 From: Silentoplayz <50341825+Silentoplayz@users.noreply.github.com> Date: Tue, 3 Jun 2025 00:21:33 -0400 Subject: [PATCH] feat: edit?id= for admin models edit page --- .../components/admin/Settings/Models.svelte | 32 ++++++++++++++++--- .../admin/settings/models/edit/+page.svelte | 5 +++ 2 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 src/routes/(app)/admin/settings/models/edit/+page.svelte diff --git a/src/lib/components/admin/Settings/Models.svelte b/src/lib/components/admin/Settings/Models.svelte index 875d542ff..a4ede1648 100644 --- a/src/lib/components/admin/Settings/Models.svelte +++ b/src/lib/components/admin/Settings/Models.svelte @@ -12,7 +12,8 @@ deleteAllModels, getBaseModels, toggleModelById, - updateModelById + updateModelById, + getModelById } from '$lib/apis/models'; import { getModels } from '$lib/apis'; @@ -36,6 +37,9 @@ import Eye from '$lib/components/icons/Eye.svelte'; import { copyToClipboard } from '$lib/utils'; + import { page } from '$app/stores'; + import { goto } from '$app/navigation'; + let shiftKey = false; let importFiles; @@ -67,6 +71,24 @@ let searchValue = ''; + $: { + if ($page.url.pathname === '/admin/settings/models/edit') { + const modelIdFromUrl = $page.url.searchParams.get('id'); + if (modelIdFromUrl && models) { + const modelExists = models.some((m) => m.id === modelIdFromUrl); + if (modelExists) { + selectedModelId = modelIdFromUrl; + } else { + goto('/admin/settings/models', { replaceState: true }); + } + } else if (!modelIdFromUrl) { + goto('/admin/settings/models', { replaceState: true }); + } + } else if ($page.url.pathname === '/admin/settings/models' && selectedModelId !== null) { + selectedModelId = null; + } + } + const downloadModels = async (models) => { let blob = new Blob([JSON.stringify(models)], { type: 'application/json' @@ -314,7 +336,7 @@ class=" flex flex-1 text-left space-x-3.5 cursor-pointer w-full" type="button" on:click={() => { - selectedModelId = model.id; + goto(`/admin/settings/models/edit?id=${model.id}`); }} >
@@ -378,7 +400,7 @@ class="self-center w-fit text-sm px-2 py-2 dark:text-gray-300 dark:hover:text-white hover:bg-black/5 dark:hover:bg-white/5 rounded-xl" type="button" on:click={() => { - selectedModelId = model.id; + goto(`/admin/settings/models/edit?id=${model.id}`); }} > { console.log(model); upsertModelHandler(model); - selectedModelId = null; + goto('/admin/settings/models'); }} onBack={() => { - selectedModelId = null; + goto('/admin/settings/models'); }} /> {/if} diff --git a/src/routes/(app)/admin/settings/models/edit/+page.svelte b/src/routes/(app)/admin/settings/models/edit/+page.svelte new file mode 100644 index 000000000..2b3ffe2d4 --- /dev/null +++ b/src/routes/(app)/admin/settings/models/edit/+page.svelte @@ -0,0 +1,5 @@ + + +