import { useEffect, useState } from 'react'; import { getSettings, SettingsType, DEFAULT_SETTINGS, getBackgroundImage } from './lib/db'; import { useFileStore } from './stores/fileStore'; import TreeView from './components/Sidebar/TreeView'; import EditorCore from './components/Editor/EditorCore'; import SettingsModal from './components/Settings/SettingsModal'; import { Settings01Icon, Download01Icon, BorderAll01Icon } from 'hugeicons-react'; function App() { const [settings, setSettings] = useState(DEFAULT_SETTINGS); const [bgImage, setBgImage] = useState(null); const [showSettings, setShowSettings] = useState(false); const [showSidebar, setShowSidebar] = useState(true); const { loadFiles } = useFileStore(); useEffect(() => { // Initial data load loadFiles(); // Load config from DB getSettings().then(setSettings); // Load background image getBackgroundImage().then(blob => { if (blob) { if (blob instanceof Blob) { setBgImage(URL.createObjectURL(blob)); } else { setBgImage(blob); } } }); // Entry/Exit Listener const handleKeyDown = (e: KeyboardEvent) => { if (e.key === 'Escape') { setShowSettings(false); } }; window.addEventListener('keydown', handleKeyDown); return () => window.removeEventListener('keydown', handleKeyDown); }, []); return (
{bgImage && (
)} {showSettings && setShowSettings(false)} />} {showSidebar && ( )}
); } export default App;