diff --git a/packages/shared-ui/src/settings/GlobalSettingsSection.svelte b/packages/shared-ui/src/settings/GlobalSettingsSection.svelte index 1286df300..dd77908bd 100644 --- a/packages/shared-ui/src/settings/GlobalSettingsSection.svelte +++ b/packages/shared-ui/src/settings/GlobalSettingsSection.svelte @@ -10,11 +10,21 @@ import SettingsCard from './SettingsCard.svelte'; import NavVisibilitySettings from './NavVisibilitySettings.svelte'; + interface NavItem { + href: string; + label: string; + icon?: string; + } + interface Props { /** User settings store instance */ userSettings: UserSettingsStore; /** App ID for start page selection */ appId?: string; + /** Navigation items for visibility settings */ + navItems?: NavItem[]; + /** Items that should always be visible (e.g., home route) */ + alwaysVisibleHrefs?: string[]; /** Whether to show navigation settings */ showNavigation?: boolean; /** Whether to show nav visibility settings */ @@ -36,6 +46,8 @@ let { userSettings, appId, + navItems = [], + alwaysVisibleHrefs = [], showNavigation = true, showNavVisibility = true, showTheme = true, @@ -209,12 +221,12 @@ {/if} - {#if showNavVisibility && appId} + {#if showNavVisibility && appId && navItems.length > 0}
- +
{/if} diff --git a/packages/shared-ui/src/settings/NavVisibilitySettings.svelte b/packages/shared-ui/src/settings/NavVisibilitySettings.svelte index 03fbab15e..2223bfa51 100644 --- a/packages/shared-ui/src/settings/NavVisibilitySettings.svelte +++ b/packages/shared-ui/src/settings/NavVisibilitySettings.svelte @@ -1,29 +1,116 @@ @@ -41,24 +128,38 @@
- {#each hideableRoutes as route (route.path)} - {@const hidden = isRouteHidden(route.path)} + {#each hideableItems as item (item.href)} + {@const hidden = isRouteHidden(item.href)} + {@const iconPath = item.icon ? getIconPath(item.icon) : ''}