diff --git a/apps/common/features/src/pages/notice/model/notice-table-columns.tsx b/apps/common/features/src/pages/notice/model/notice-table-columns.tsx index 623479a05..b327b2add 100644 --- a/apps/common/features/src/pages/notice/model/notice-table-columns.tsx +++ b/apps/common/features/src/pages/notice/model/notice-table-columns.tsx @@ -1,6 +1,7 @@ import dayjs from "dayjs"; import type { ColumnDef } from "@tanstack/react-table"; import type { Post } from "@/entities/post"; +import { Badge, Button } from "@common/components/ui"; export const columns: ColumnDef[] = [ { @@ -11,6 +12,19 @@ export const columns: ColumnDef[] = [ { accessorKey: "pstTtl", header: "제목", + cell: ({ row }) => { + const { pstTtl, inqNocs } = row.original; + + return ( +
+ {inqNocs >= 100 && HOT} + {dayjs().diff(dayjs(row.original.regDt), "hour") < 24 && ( + NEW + )} + {pstTtl} +
+ ); + }, }, { accessorKey: "inqNocs", @@ -19,6 +33,11 @@ export const columns: ColumnDef[] = [ { accessorKey: "atflCd", header: "첨부파일", + cell: ({ row }) => { + const atflCd = row.original.atflCd; + if (!atflCd) return null; + return ; + }, }, { accessorKey: "rgtrNm", @@ -30,3 +49,13 @@ export const columns: ColumnDef[] = [ cell: ({ row }) => dayjs(row.original.regDt).format("YYYY-MM-DD"), }, ]; + +const AttachmentButton = ({ atflCd }: { atflCd: string }) => { + if (!atflCd) return null; + return ( + + ); +}; diff --git a/apps/common/features/src/pages/notice/ui/notice-page.tsx b/apps/common/features/src/pages/notice/ui/notice-page.tsx index 6bbbabc4c..c86483a43 100644 --- a/apps/common/features/src/pages/notice/ui/notice-page.tsx +++ b/apps/common/features/src/pages/notice/ui/notice-page.tsx @@ -9,6 +9,7 @@ import { type PaginationState, type RowSelectionState, } from "@tanstack/react-table"; +import { useLocalStorage } from "@frontend-opensource/use-react-hooks"; import { Button, DataTable, @@ -20,6 +21,7 @@ import { SelectTrigger, SelectValue, } from "@common/components/ui"; +import type { Board } from "@/entities/board"; import { PostApi, type Post, type PostParams } from "@/entities/post"; import { ENDPOINT } from "@/shared/config"; import { PageLayout } from "@/shared/ui/page-layout"; @@ -27,7 +29,8 @@ import { columns } from "../model/notice-table-columns"; function NoticePage({ bbsId }: { bbsId: string }) { const router = useRouter(); - + const [storedBbsInfo] = useLocalStorage("bbs-info", ""); + const [bbsInfo, setBbsInfo] = useState(null); const [rowSelection, setRowSelection] = useState({}); const [postParams, setPostParams] = useState({ keywordType: "title", @@ -79,8 +82,15 @@ function NoticePage({ bbsId }: { bbsId: string }) { refetch(); }, [pagination]); + useEffect(() => { + if (storedBbsInfo) setBbsInfo(JSON.parse(storedBbsInfo)); + }, [storedBbsInfo]); + return ( - +
diff --git a/apps/cs/src/pages/bbs/model/table-columns.tsx b/apps/cs/src/pages/bbs/model/table-columns.tsx index dee415593..27d026a7d 100644 --- a/apps/cs/src/pages/bbs/model/table-columns.tsx +++ b/apps/cs/src/pages/bbs/model/table-columns.tsx @@ -1,6 +1,7 @@ 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/ui"; @@ -44,12 +45,14 @@ export const columns: ColumnDef[] = [ const ManageButton = ({ row }: { row: Row }) => { const router = useRouter(); const { bbsTypeCd, bbsId } = row.original; + const [, setBbsInfo] = useLocalStorage("bbs-info", ""); return (