Files
homepage/src/lib/components/ThemeToggle.svelte
T
Alexander b2e271c3ea
CI / update (push) Successful in 4m10s
feat: major dependency upgrades, remove Redis, fix mongoose 9 types
Dependencies upgraded:
- svelte 5.38→5.55, @sveltejs/kit 2.37→2.56, adapter-node 5.3→5.5
- mongoose 8→9, sharp 0.33→0.34, typescript 5→6
- lucide-svelte → @lucide/svelte 1.7 (Svelte 5 native package)
- vite 7→8 with rolldown (build time 33s→14s)
- Removed terser (esbuild/oxc default minifier is 20-100x faster)

Infrastructure:
- Removed Redis/ioredis cache layer — MongoDB handles caching natively
- Deleted src/lib/server/cache.ts and all cache.get/set/invalidate usage
- Removed redis-cli from deploy workflow, Redis env vars from .env.example

Mongoose 9 migration:
- Replaced deprecated `new: true` with `returnDocument: 'after'` (16 files)
- Fixed strict query filter types for ObjectId/paymentId fields
- Fixed season param type (string→number) in recipe API
- Removed unused @ts-expect-error in WorkoutSession model
2026-04-06 12:21:26 +02:00

39 lines
885 B
Svelte

<script>
import { themeStore } from '$lib/stores/theme.svelte';
import { Sun, Moon, SunMoon } from '@lucide/svelte';
</script>
<style>
button {
display: flex;
align-items: center;
justify-content: center;
padding: 0.3em;
border-radius: 100px;
background: transparent;
color: var(--nav-text);
cursor: pointer;
transition: all 150ms;
border: 1px solid var(--nav-btn-border);
}
button:hover {
color: var(--nav-text-hover);
border-color: var(--nav-btn-border-hover);
background: var(--nav-hover-bg);
}
</style>
<button
onclick={() => themeStore.cycle()}
aria-label="Toggle theme ({themeStore.theme})"
title="Theme: {themeStore.theme}"
>
{#if themeStore.theme === 'light'}
<Sun size={14} strokeWidth={2} />
{:else if themeStore.theme === 'dark'}
<Moon size={14} strokeWidth={2} />
{:else}
<SunMoon size={14} strokeWidth={2} />
{/if}
</button>