From 0af1dd7ec612c7ff97e972cb9e102429369bfced Mon Sep 17 00:00:00 2001 From: Till JS Date: Thu, 16 Apr 2026 11:52:25 +0200 Subject: [PATCH] feat(workbench): section deep-links + migrate profile & themes to workbench MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Section deep-links: /?app=settings#ai-options now switches the Settings ListView to the KI tab and scrolls to the ai-options anchor. ListView reads the URL hash on mount and maps it to a category via the existing searchIndex anchors. The AI-tier dropdown "KI-Einstellungen" link now targets /?app=settings#ai-options instead of just /?app=settings. Profile & Themes workbench consolidation — same pattern as Settings: - Delete standalone /profile and /themes routes (redundant with the workbench apps registered in app-registry) - Migrate all links: PillNavigation profileHref/themesHref, dashboard QuickActionsWidget, +layout theme-switcher "Alle Themes", and the scene context-menu "Hintergrund ändern" Credits stays as a standalone route — no workbench app registered for it. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../widgets/QuickActionsWidget.svelte | 2 +- .../layout/use-ai-tier-items.svelte.ts | 2 +- .../src/lib/modules/settings/ListView.svelte | 20 ++- .../apps/web/src/routes/(app)/+layout.svelte | 6 +- .../apps/web/src/routes/(app)/+page.svelte | 2 +- .../web/src/routes/(app)/profile/+page.svelte | 162 ------------------ .../web/src/routes/(app)/themes/+page.svelte | 28 --- 7 files changed, 24 insertions(+), 198 deletions(-) delete mode 100644 apps/mana/apps/web/src/routes/(app)/profile/+page.svelte delete mode 100644 apps/mana/apps/web/src/routes/(app)/themes/+page.svelte diff --git a/apps/mana/apps/web/src/lib/components/dashboard/widgets/QuickActionsWidget.svelte b/apps/mana/apps/web/src/lib/components/dashboard/widgets/QuickActionsWidget.svelte index 53e87710a..097b32e4d 100644 --- a/apps/mana/apps/web/src/lib/components/dashboard/widgets/QuickActionsWidget.svelte +++ b/apps/mana/apps/web/src/lib/components/dashboard/widgets/QuickActionsWidget.svelte @@ -22,7 +22,7 @@ descKey: 'dashboard.widgets.quick_actions.feedback_desc', }, { - href: '/profile', + href: '/?app=profile', icon: '👤', labelKey: 'dashboard.widgets.quick_actions.profile', descKey: 'dashboard.widgets.quick_actions.profile_desc', diff --git a/apps/mana/apps/web/src/lib/components/layout/use-ai-tier-items.svelte.ts b/apps/mana/apps/web/src/lib/components/layout/use-ai-tier-items.svelte.ts index 3c4cac69c..8a65b4d14 100644 --- a/apps/mana/apps/web/src/lib/components/layout/use-ai-tier-items.svelte.ts +++ b/apps/mana/apps/web/src/lib/components/layout/use-ai-tier-items.svelte.ts @@ -184,7 +184,7 @@ export function useAiTierItems() { id: 'ai-settings', label: 'KI-Einstellungen', icon: 'settings', - onClick: () => goto('/?app=settings'), + onClick: () => goto('/?app=settings#ai-options'), }, ]); diff --git a/apps/mana/apps/web/src/lib/modules/settings/ListView.svelte b/apps/mana/apps/web/src/lib/modules/settings/ListView.svelte index a3fe57a01..c5076c280 100644 --- a/apps/mana/apps/web/src/lib/modules/settings/ListView.svelte +++ b/apps/mana/apps/web/src/lib/modules/settings/ListView.svelte @@ -3,10 +3,15 @@ credits, data). Profile and Themes live in their own workbench apps. --> - - - -{#if loading} -
-
-
-{:else} - -{/if} - - - (showEditModal = false)} - onSuccess={handleProfileUpdate} -/> - - (showPasswordModal = false)} - onSuccess={handlePasswordChange} -/> - - (showDeleteModal = false)} - onSuccess={handleAccountDeleted} -/> - - -{#if toastMessage} -
- {toastMessage} -
-{/if} - - diff --git a/apps/mana/apps/web/src/routes/(app)/themes/+page.svelte b/apps/mana/apps/web/src/routes/(app)/themes/+page.svelte deleted file mode 100644 index be0cbac78..000000000 --- a/apps/mana/apps/web/src/routes/(app)/themes/+page.svelte +++ /dev/null @@ -1,28 +0,0 @@ - - - - Themes | Mana - - - - - theme.setVariant(v)} - showModeSelector={true} - currentMode={theme.mode} - onModeChange={(m) => theme.setMode(m)} - showBackButton={false} - transparent={wallpaperStore.hasWallpaper} -> -
-

Hintergrund

- -
-