App.tsx: Hell/Dunkel-State nach theme/useThemeMode.ts

Reiner Umzug von useState + Setter-Wrapper (persistiert in localStorage via
themeMode.ts) in einen eigenen Hook. Verhaltensgleich.
This commit is contained in:
2026-07-21 16:24:33 +02:00
parent 6637533162
commit 9e73c684c3
2 changed files with 20 additions and 10 deletions
+2 -10
View File
@@ -132,11 +132,6 @@ import { TextEditorDialog } from "./ui/TextEditorDialog";
import { RoomStampEditor } from "./panels/RoomStampEditor";
import { defaultRoomStamp } from "./model/roomStamp";
import { StatusBar, type RendererMode } from "./ui/StatusBar";
import {
type ThemeMode,
getStoredThemeMode,
setStoredThemeMode,
} from "./theme/themeMode";
import { getTool } from "./tools/tools";
import { applyAngleConstraint, computeSnap } from "./tools/snapping";
import {
@@ -163,6 +158,7 @@ import type { MenuState } from "./menus/contextMenu";
import { InlineEditor } from "./views/InlineEditor";
import { Content } from "./views/viewportContent";
import { useDialogState } from "./state/useDialogState";
import { useThemeModeState } from "./theme/useThemeMode";
import { CommandLine } from "./ui/CommandLine";
import type { CommandLineHandle, CommandLineField, CommandLineOption } from "./ui/CommandLine";
import { CommandEngine } from "./commands/engine";
@@ -4267,11 +4263,7 @@ export default function App() {
// Hell/Dunkel (Einstellungen → Darstellung). Standard Hell (styles.css);
// Dunkel ist Opt-in und persistiert in localStorage.
const [themeMode, setThemeModeState] = useState<ThemeMode>(() => getStoredThemeMode());
const setThemeMode = (mode: ThemeMode) => {
setThemeModeState(mode);
setStoredThemeMode(mode);
};
const { themeMode, setThemeMode } = useThemeModeState();
// Einstellungen als eigenes natives Fenster (Tauri) statt Overlay-Dialog —
// hält es (falls offen) synchron zu den betroffenen Feldern, wendet dessen
+18
View File
@@ -0,0 +1,18 @@
// React-State-Wrapper um den Hell/Dunkel-Umschalter (Einstellungen →
// Darstellung). Standard Hell (styles.css); Dunkel ist Opt-in und
// persistiert in localStorage (themeMode.ts).
//
// Extrahiert aus App.tsx. Bezeichner englisch, Kommentare deutsch (CONVENTIONS.md).
import { useState } from "react";
import { getStoredThemeMode, setStoredThemeMode } from "./themeMode";
import type { ThemeMode } from "./themeMode";
export function useThemeModeState() {
const [themeMode, setThemeModeState] = useState<ThemeMode>(() => getStoredThemeMode());
const setThemeMode = (mode: ThemeMode) => {
setThemeModeState(mode);
setStoredThemeMode(mode);
};
return { themeMode, setThemeMode };
}