diff --git a/apps/calendar/apps/web/src/lib/components/settings/SettingsModal.svelte b/apps/calendar/apps/web/src/lib/components/settings/SettingsModal.svelte new file mode 100644 index 000000000..00f234422 --- /dev/null +++ b/apps/calendar/apps/web/src/lib/components/settings/SettingsModal.svelte @@ -0,0 +1,1232 @@ + + + + +{#if visible} + + + + + + + +{/if} + + diff --git a/apps/calendar/apps/web/src/routes/(app)/+layout.svelte b/apps/calendar/apps/web/src/routes/(app)/+layout.svelte index 930616492..575544714 100644 --- a/apps/calendar/apps/web/src/routes/(app)/+layout.svelte +++ b/apps/calendar/apps/web/src/routes/(app)/+layout.svelte @@ -65,6 +65,7 @@ import EventContextMenu from '$lib/components/event/EventContextMenu.svelte'; import ViewModePillContextMenu from '$lib/components/calendar/ViewModePillContextMenu.svelte'; import StatsOverlay from '$lib/components/calendar/StatsOverlay.svelte'; + import SettingsModal from '$lib/components/settings/SettingsModal.svelte'; import { eventContextMenuStore } from '$lib/stores/eventContextMenu.svelte'; import { heatmapStore } from '$lib/stores/heatmap.svelte'; import type { CalendarViewType } from '@calendar/shared'; @@ -176,6 +177,9 @@ let helpModalOpen = $state(false); let helpModalMode = $state<'shortcuts' | 'syntax'>('shortcuts'); + // Settings modal state + let showSettingsModal = $state(false); + function handleShowShortcuts() { helpModalMode = 'shortcuts'; helpModalOpen = true; @@ -287,7 +291,12 @@ onClick: () => heatmapStore.toggle(), active: heatmapStore.enabled, }, - { href: '/settings', label: 'Einstellungen', icon: 'settings' }, + { + href: '/', + label: 'Einstellungen', + icon: 'settings', + onClick: () => (showSettingsModal = true), + }, { href: '/feedback', label: 'Feedback', icon: 'chat' }, ]); @@ -759,6 +768,13 @@ + + (showSettingsModal = false)} + {isSidebarMode} +/> +