From 8774fea7735233f89c116249720dc727b7c75ee8 Mon Sep 17 00:00:00 2001 From: Agent Zero Date: Sat, 29 Aug 2026 02:55:53 +0200 Subject: [PATCH] task(H1): simple/pro mode - uiModeService with localStorage persistence, ribbon basic-tag filter, commandline pro-only, topbar toggle --- frontend/src/components/CommandLine.tsx | 4 + frontend/src/components/RibbonBar.tsx | 7 +- frontend/src/components/Topbar.tsx | 11 +++ frontend/src/services/uiModeService.ts | 66 +++++++++++++ frontend/tests/uiMode.test.tsx | 118 ++++++++++++++++++++++++ 5 files changed, 205 insertions(+), 1 deletion(-) create mode 100644 frontend/src/services/uiModeService.ts create mode 100644 frontend/tests/uiMode.test.tsx diff --git a/frontend/src/components/CommandLine.tsx b/frontend/src/components/CommandLine.tsx index 6eb19c0..95bc5ac 100644 --- a/frontend/src/components/CommandLine.tsx +++ b/frontend/src/components/CommandLine.tsx @@ -1,6 +1,7 @@ import React, { useState, useRef, useMemo, useEffect } from 'react'; import type { CommandLineProps } from '../types/ui.types'; import { getCommandRegistry, type CommandDefinition } from '../services/commandRegistry'; +import { useUIMode } from '../services/uiModeService'; const defaultHistory = [ { prefix: '·' as const, text: 'Bereit · Werkzeug: Auswahl · 110 Objekte · 5 Ebenen', type: 'info' as const }, @@ -20,6 +21,9 @@ const categoryColors: Record = { }; const CommandLine: React.FC = ({ history, onCommand }) => { + const uiMode = useUIMode(); + if (uiMode === 'simple') return null; + const [input, setInput] = useState(''); const [selectedSuggestion, setSelectedSuggestion] = useState(0); const [commandHistory, setCommandHistory] = useState([]); diff --git a/frontend/src/components/RibbonBar.tsx b/frontend/src/components/RibbonBar.tsx index ec47c06..c147ee1 100644 --- a/frontend/src/components/RibbonBar.tsx +++ b/frontend/src/components/RibbonBar.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import { getUIMode, useUIMode } from '../services/uiModeService'; import type { RibbonBarProps, RibbonTab } from '../types/ui.types'; import { pluginRegistry } from '../plugins'; import { V2_TOOLS_ENABLED } from '../kernel/featureFlags'; @@ -19,6 +20,8 @@ const RibbonBar: React.FC = ({ onCanvasBgColorChange, onGridColorChange, onToggleRuler, onIsV2ToolActive, }) => { + const uiMode = useUIMode(); + return (