import { useEffect, useState } from 'react' import { useStore, wireEvents } from './store' import { useT } from './i18n' import { Onboarding } from './components/Onboarding' import { ProfileManager } from './components/ProfileManager' import { AnniversaryManager } from './components/AnniversaryManager' import { FolderPicker } from './components/FolderPicker' import { RunControl } from './components/RunControl' import { ProgressView } from './components/ProgressView' import { FileList } from './components/FileList' import { ReportView } from './components/ReportView' import { LibraryView } from './components/LibraryView' import { SearchView } from './components/SearchView' import { GroupsView } from './components/GroupsView' import { MapView } from './components/MapView' import { FileExplorer } from './components/FileExplorer' import { Overlays } from './overlays' import type { AppView } from './store' export default function App(): JSX.Element { const t = useT() const phase = useStore((s) => s.phase) const view = useStore((s) => s.view) const setView = useStore((s) => s.setView) const easyMode = useStore((s) => s.easyMode) const onboarded = useStore((s) => s.onboarded) const refreshProfiles = useStore((s) => s.refreshProfiles) const initSettings = useStore((s) => s.initSettings) const [ready, setReady] = useState(false) useEffect(() => { const unwire = wireEvents() // 설정 로드(테마 적용 포함) 후 화면 표시 void initSettings().then(() => setReady(true)) void refreshProfiles() return unwire }, [refreshProfiles, initSettings]) if (!ready) return
if (!onboarded) return