'use client'; import { useEffect, useState } from 'react'; import { useRouter } from 'next/navigation'; import { Plus, Search } from 'lucide-react'; import { useProductStore } from '@/stores/useProductStore'; import { ProductCard } from '@/components/product/ProductCard'; import { ProductForm } from '@/components/product/ProductForm'; export default function ProductsPage() { const router = useRouter(); const { products, loading, fetchProducts, createProduct } = useProductStore(); const [showForm, setShowForm] = useState(false); const [search, setSearch] = useState(''); useEffect(() => { fetchProducts(); }, [fetchProducts]); const filtered = products.filter((p) => p.name.toLowerCase().includes(search.toLowerCase()), ); const handleCreate = async (data: { name: string; description: string }) => { await createProduct(data); setShowForm(false); }; return (

产品

{products.length}
setSearch(e.target.value)} placeholder="搜索产品名称" className="h-9 w-full rounded-lg border border-[var(--line)] bg-[var(--bg-card)] pl-8 pr-3 text-[13px] text-[var(--ink)] placeholder:text-[var(--ink-muted)] focus:border-[var(--accent)] focus:outline-none focus:ring-2 focus:ring-[var(--accent-ring)]" />
{showForm && (

新建产品

setShowForm(false)} />
)} {loading ? (
加载中…
) : filtered.length === 0 ? (

{search ? '没有找到匹配的产品' : '尚未创建任何产品'}

{search ? '尝试其他关键字' : '点击右上角"新建产品"开始'}

) : (
{filtered.map((product) => ( router.push(`/products/${id}`)} /> ))}
)}
); }