apps
/(dashboard)
/[storeId]
/(routes)
/billboards
import { format } from 'date-fns';
import prismadb from '@/lib/prismadb';
import BillboardClient from './components/client';
import { BillboardColumn } from './components/columns';
// storeId에 해당하는 빌보드 리스트 가져오는 페이지
export default async function BillboardPage({
params,
}: {
params: { storeId: string };
}) {
const billboards = await prismadb.billboard.findMany({
where: {
storeId: params.storeId,
},
orderBy: {
createdAt: 'desc',
},
});
const formattedBillboards: BillboardColumn[] = billboards.map((item) => ({
id: item.id,
label: item.label,
createdAt: format(item.createdAt, 'MMMM do, yyyy'),
}));
return (
<div className='flex-col'>
<div className='flex-1 space-y-4 p-8 pt-6'>
<BillboardClient data={formattedBillboards} />
</div>
</div>
);
}
가져온 billboards들을 하위 BillboardClient
에게 넘깁니다.
데이터 테이블 만들기 feat shadcn
npx shadcn-ui@latest add table
npm install @tanstack/react-table
다음 공식문서를 보고 필요한 것들만 복사 붙여넣기 하면서 추가를 한다.
<DataTable />
componentCell Action에서 ‘copy
’, ‘update
’, ‘delete
’
각 row에 action들을 부여하기 위해서 cellAction 컴포넌트를 추가하고, cellAction 컴포넌트에서 Dropdown menu UI 를 추가할 예정이다.
npx shadcn-ui@latest add dropdown-menu