import React from 'react'; import { AnimatePresence } from 'framer-motion'; import { useJobStore } from '@/store/appStore'; import { HomePage, WorkflowPage, JobListPage, SettingsModal } from '@/components/pages'; import Toast from '@/components/common/Toast'; import { jobsAPI } from '@/utils/api'; const App: React.FC = () => { const [isSettingsOpen, setIsSettingsOpen] = React.useState(false); const { currentPage, navigateToHome, navigateToWorkflow, navigateToJobList, setTailoringMode, setLLMProvider, setEnableProfessionalSummary, setIncludeCoverLetters, notification, setNotification } = useJobStore(); React.useEffect(() => { const syncConfig = async () => { try { const config = await jobsAPI.getConfig(); setTailoringMode(config.tailoring_mode); setLLMProvider(config.llm_provider); setEnableProfessionalSummary(!!config.enable_professional_summary); setIncludeCoverLetters(!!config.include_cover_letters); } catch { // Keep existing defaults if backend config is unavailable. } }; void syncConfig(); }, [setEnableProfessionalSummary, setIncludeCoverLetters, setLLMProvider, setTailoringMode]); return (
{currentPage === 'home' && ( setIsSettingsOpen(true)} /> )} {currentPage === 'workflow' && ( setIsSettingsOpen(true)} /> )} {currentPage === 'joblist' && ( setIsSettingsOpen(true)} /> )} {/* Settings Modal */} setIsSettingsOpen(false)} /> {/* Notification Toast */} {notification && (
setNotification(null)} />
)}
); }; export default App;