import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; import { ProjectList } from './components/ProjectList'; import { ProjectForm } from './components/ProjectForm'; import { ProjectDetails } from './pages/ProjectDetails'; import Models from './pages/Models'; import ModelDetail from './pages/ModelDetail'; import AiClassificationSettings from './pages/AiClassificationSettings'; import TemplateManagement from './pages/TemplateManagement'; import { MaterialModelBinding } from './pages/MaterialModelBinding'; import Navigation from './components/Navigation'; import { NotificationSystem, useNotifications } from './components/NotificationSystem'; import { useProjectStore } from './store/projectStore'; import { useUIStore } from './store/uiStore'; import { CreateProjectRequest, UpdateProjectRequest } from './types/project'; import "./App.css"; import './styles/design-system.css'; import './styles/animations.css'; /** * 主应用组件 * 遵循 Tauri 开发规范的应用架构设计 */ function App() { const { createProject, updateProject } = useProjectStore(); const { showCreateProjectModal, showEditProjectModal, editingProject, closeCreateProjectModal, closeEditProjectModal } = useUIStore(); // 通知系统 const { notifications, removeNotification, success, error } = useNotifications(); // 处理创建项目 const handleCreateProject = async (data: CreateProjectRequest) => { try { await createProject(data); success('项目创建成功', `项目"${data.name}"已创建`); closeCreateProjectModal(); } catch (err) { const errorMessage = err instanceof Error ? err.message : '未知错误'; error('项目创建失败', errorMessage); throw err; } }; // 处理更新项目 const handleUpdateProject = async (data: UpdateProjectRequest) => { if (!editingProject) return; try { await updateProject(editingProject.id, data); success('项目更新成功', `项目"${data.name}"已更新`); closeEditProjectModal(); } catch (err) { const errorMessage = err instanceof Error ? err.message : '未知错误'; error('项目更新失败', errorMessage); throw err; } }; return (
{/* 固定的导航栏 */} {/* 可滚动的主要内容区域 */}
} /> } /> } /> } /> } /> } /> } />
{/* 创建项目模态框 */} {showCreateProjectModal && ( )} {/* 编辑项目模态框 */} {showEditProjectModal && editingProject && ( )} {/* 通知系统 */}
); } export default App;