From 60b577b6df8ba7a44c3678fdc8d69bf86029bd53 Mon Sep 17 00:00:00 2001 From: Ku6epXBOCTuK Date: Thu, 5 Feb 2026 23:05:23 +0500 Subject: [PATCH] fix: use text state --- src/components/layout/AppHeader.svelte | 7 ++----- src/components/layout/Card.svelte | 1 + src/components/text/TextInlineEdit.svelte | 5 +++-- src/components/text/TextManager.svelte | 2 +- src/routes/+layout.svelte | 7 +++++++ .../{texts.state.svelte.ts => texts.svelte.ts} | 8 +------- src/states/theme.svelte.ts | 16 ++++++++++++++++ 7 files changed, 31 insertions(+), 15 deletions(-) rename src/states/{texts.state.svelte.ts => texts.svelte.ts} (74%) create mode 100644 src/states/theme.svelte.ts diff --git a/src/components/layout/AppHeader.svelte b/src/components/layout/AppHeader.svelte index fe85e01..a4b60a9 100644 --- a/src/components/layout/AppHeader.svelte +++ b/src/components/layout/AppHeader.svelte @@ -1,17 +1,14 @@ diff --git a/src/components/layout/Card.svelte b/src/components/layout/Card.svelte index 1f14ef7..9026e83 100644 --- a/src/components/layout/Card.svelte +++ b/src/components/layout/Card.svelte @@ -39,6 +39,7 @@ padding: 16px; margin-bottom: 16px; transition: var(--transition); + overflow: hidden; } .card-title { diff --git a/src/components/text/TextInlineEdit.svelte b/src/components/text/TextInlineEdit.svelte index 4749635..82b31af 100644 --- a/src/components/text/TextInlineEdit.svelte +++ b/src/components/text/TextInlineEdit.svelte @@ -1,17 +1,18 @@ -
+
diff --git a/src/components/text/TextManager.svelte b/src/components/text/TextManager.svelte index 3776950..ac9b513 100644 --- a/src/components/text/TextManager.svelte +++ b/src/components/text/TextManager.svelte @@ -3,7 +3,7 @@ import InputGroup from "$components/layout/InputGroup.svelte"; import Button from "$components/ui/Button.svelte"; import IconPlus from "$components/ui/Icons/IconPlus.svelte"; - import { textsState } from "$states/texts.state.svelte"; + import { textsState } from "$states/texts.svelte"; import TextInlineEdit from "./TextInlineEdit.svelte"; import TextInput from "./TextInput.svelte"; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 81e50ff..0ba8014 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,11 +1,18 @@ diff --git a/src/states/texts.state.svelte.ts b/src/states/texts.svelte.ts similarity index 74% rename from src/states/texts.state.svelte.ts rename to src/states/texts.svelte.ts index 8222267..6c84c31 100644 --- a/src/states/texts.state.svelte.ts +++ b/src/states/texts.svelte.ts @@ -3,15 +3,9 @@ export interface TextItem { id: number; } -export interface TextsState { - texts: Array; - addText(text: string): void; - removeText(id: number): void; -} - const defaultTexts: Array = ["About me", "Links", "Projects"].map((text, idx) => ({ text, id: idx })); -function createTextsState(): TextsState { +function createTextsState() { let texts: Array = $state(defaultTexts); let nextId = $state(defaultTexts.length); diff --git a/src/states/theme.svelte.ts b/src/states/theme.svelte.ts new file mode 100644 index 0000000..c790e78 --- /dev/null +++ b/src/states/theme.svelte.ts @@ -0,0 +1,16 @@ +export type Theme = "dark" | "light"; + +function createThemeState() { + let current: Theme = $state("dark"); + + return { + get theme() { + return current; + }, + toggle() { + current = current === "dark" ? "light" : "dark"; + }, + }; +} + +export const themeState = createThemeState();