Files
frontend/apps/cs/src/pages/bbs/model/table-columns.tsx
T

62 lines
1.4 KiB
TypeScript

import dayjs from "dayjs";
import { useRouter } from "next/navigation";
import type { ColumnDef, Row } from "@tanstack/react-table";
import { useLocalStorage } from "@frontend-opensource/use-react-hooks";
import type { Board } from "@/entities/board/model/board-interface";
import { Button } from "@common/components";
export const columns: ColumnDef<Board>[] = [
{
id: "no",
header: "NO",
cell: ({ row }) => row.index + 1,
},
{
accessorKey: "bbsNm",
header: "게시판명",
},
{
accessorKey: "bbsTypeNm",
header: "게시판유형",
},
{
accessorKey: "mdfrNm",
header: "최종수정자",
},
{
accessorKey: "mdfcnDt",
header: "최종수정일",
cell: ({ row }) =>
row.original.mdfcnDt
? dayjs(row.original.mdfcnDt).format("YYYY-MM-DD")
: "",
},
{
accessorKey: "useYn",
header: "사용여부",
},
{
id: "actions",
header: "관리",
cell: ({ row }) => <ManageButton row={row} />,
},
];
const ManageButton = ({ row }: { row: Row<Board> }) => {
const router = useRouter();
const { bbsTypeCd, bbsId } = row.original;
const [, setBbsInfo] = useLocalStorage("bbs-info", "");
return (
<Button
size="sm"
onClick={(e) => {
e.stopPropagation();
router.push(`/pst/${bbsTypeCd.toLowerCase()}/${bbsId}`);
setBbsInfo(JSON.stringify(row.original));
}}
>
관리
</Button>
);
};