'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 (
── 02 / Products
组织内所有产品的索引。每个产品聚合需求池、发布版本与归属项目。
Showing
{String(filtered.length).padStart(2, '0')}
/ {String(products.length).padStart(2, '0')} 个产品── 新建产品
Loading...
{search ? '没有匹配的产品' : '尚未创建任何产品'}
{search ? '试试其他关键字' : '点击右上角按钮,创建第一个产品'}