fix: mobile sidebar slide-in overlay with hamburger and panel toggle buttons

- LeftSidebar/RightSidebar: added className prop for 'open' class
- Topbar: wired hamburger onClick + added mobile-drawer-toggle button for right panel
- App.tsx: added SettingsModal import/state/render, passed className props to sidebars
- styles.css: mobile sidebars now fixed slide-in overlays (translateX) instead of display:none
- ui.types.ts: added className to RightSidebarProps, onOpenLeftDrawer/onOpenRightDrawer to TopbarProps
- Tested at 390px viewport: both sidebars slide in correctly, transform verified via DOM
This commit is contained in:
2026-06-28 17:55:26 +02:00
parent e2bba8b882
commit 7b4a45df49
6 changed files with 53 additions and 8 deletions
+8
View File
@@ -18,6 +18,7 @@ import StatusBar from './components/StatusBar';
import MobileDrawers from './components/MobileDrawers';
import BackgroundImport from './components/BackgroundImport';
import HistoryPanel from './components/HistoryPanel';
import SettingsModal from './components/SettingsModal';
import { BackgroundService, type BackgroundConfig } from './services/backgroundService';
import { HistoryManager, type CADStateSnapshot, type HistoryEntry } from './history';
import { getCommandRegistry } from './services/commandRegistry';
@@ -146,6 +147,7 @@ const CADEditor: React.FC<CADEditorProps> = ({ projectId, token, onNavigateBack
// Mobile drawers
const [mobileLeftOpen, setMobileLeftOpen] = useState(false);
const [mobileRightOpen, setMobileRightOpen] = useState(false);
const [settingsOpen, setSettingsOpen] = useState(false);
const [activeDrawerTab, setActiveDrawerTab] = useState<DrawerTab>('tool');
// Background
@@ -936,6 +938,9 @@ const CADEditor: React.FC<CADEditorProps> = ({ projectId, token, onNavigateBack
onRedo={handleRedo}
onThemeToggle={handleThemeToggle}
theme={theme}
onOpenSettings={() => setSettingsOpen(true)}
onOpenLeftDrawer={() => setMobileLeftOpen(true)}
onOpenRightDrawer={() => setMobileRightOpen(true)}
/>
<RibbonBar
activeTab={activeRibbonTab}
@@ -948,6 +953,7 @@ const CADEditor: React.FC<CADEditorProps> = ({ projectId, token, onNavigateBack
onToolChange={handleToolChange}
selectedTemplate={selectedTemplate}
onTemplateSelect={handleTemplateSelect}
className={mobileLeftOpen ? 'open' : ''}
/>
<CanvasArea
cursorPos={cursorPos}
@@ -1010,6 +1016,7 @@ const CADEditor: React.FC<CADEditorProps> = ({ projectId, token, onNavigateBack
onKISend={handleKISend}
onKISuggestionClick={handleSuggestionClick}
kiLoading={kiLoading}
className={mobileRightOpen ? 'open' : ''}
/>
</div>
<CommandLine
@@ -1040,6 +1047,7 @@ const CADEditor: React.FC<CADEditorProps> = ({ projectId, token, onNavigateBack
onCloseRight={() => setMobileRightOpen(false)}
onRightTabChange={setActiveDrawerTab}
/>
<SettingsModal open={settingsOpen} onClose={() => setSettingsOpen(false)} />
<BackgroundImport
open={bgImportOpen}
onClose={() => setBgImportOpen(false)}