import { useEffect, useState } from 'react' import { useProjectListStore } from '../stores/projectList' import { useToastStore } from '../stores/toast' import ProjectCard from '../components/ProjectCard' import AssetGallery from '../components/AssetGallery' import CreateProjectModal from '../components/CreateProjectModal' import EmptyState from '../components/EmptyState' import Skeleton from '../components/Skeleton' export default function HomePage() { const { projects, loading, loadProjects, createProject, deleteProject } = useProjectListStore() const addToast = useToastStore(s => s.addToast) const [modalOpen, setModalOpen] = useState(false) useEffect(() => { loadProjects() }, [loadProjects]) const handleCreate = async (name: string, style: Record) => { await createProject(name, style) addToast({ type: 'success', message: '工程创建成功' }) } const handleDelete = async (projectId: string) => { if (!confirm('确定删除该工程?所有任务和素材将被永久删除。')) return await deleteProject(projectId) addToast({ type: 'success', message: '工程已删除' }) } if (loading) { return (
) } return (

我的工程

{projects.length === 0 ? ( setModalOpen(true) }} /> ) : (
{projects.map(project => ( ))}
)} setModalOpen(false)} onSubmit={handleCreate} />
) }