{children}
diff --git a/apps/common/features/src/widgets/post/ui/post-form.tsx b/apps/common/features/src/widgets/post/ui/post-form.tsx
index 895309ed5..d84cb179a 100644
--- a/apps/common/features/src/widgets/post/ui/post-form.tsx
+++ b/apps/common/features/src/widgets/post/ui/post-form.tsx
@@ -2,10 +2,7 @@ import { useRouter } from "next/navigation";
import { useEffect, useState } from "react";
import { useQuery } from "@tanstack/react-query";
import type { UseFormReturn, FieldPath } from "react-hook-form";
-import {
- useConfirm,
- useLocalStorage,
-} from "@frontend-opensource/use-react-hooks";
+import { useConfirm } from "@frontend-opensource/use-react-hooks";
import {
Input,
Label,
@@ -19,14 +16,15 @@ import {
Textarea,
Button,
} from "@common/components";
-import { BOARD_POSTING_CODE, type Board } from "@/entities/board";
+import { BOARD_POSTING_CODE } from "@/entities/board";
import { AttachmentApi } from "@/entities/attachment";
import type { Post, PostFormData, PostUpdateFormData } from "@/entities/post";
import { ENDPOINT } from "@/shared/config";
-import { useUserStore, setCookie } from "@/shared/lib";
+import { useUserStore, setCookie, useMenuStore } from "@/shared/lib";
import { Form, FormControl, FormField, FormItem } from "@/shared/ui/form";
import { PostingPeriodSelector } from "./posting-period-selector";
import { GeneralFileUploader } from "./general-file-uploader";
+import { WithPreviewFileUploader } from "./with-preview-file-uploader";
type PostFormProps
= {
form: UseFormReturn;
@@ -42,10 +40,9 @@ function PostForm({
const router = useRouter();
const { confirm } = useConfirm();
+ const { bbsInfo } = useMenuStore((state) => state);
const { userInfo } = useUserStore((state) => state);
- const [storedBbsInfo] = useLocalStorage("bbs-info", "");
- const [bbsInfo, setBbsInfo] = useState(null);
const [deleteAttachmentIds, setDeleteAttachmentIds] = useState([]);
const { data: attachmentData } = useQuery({
@@ -65,10 +62,6 @@ function PostForm({
}
};
- useEffect(() => {
- if (storedBbsInfo) setBbsInfo(JSON.parse(storedBbsInfo));
- }, [storedBbsInfo]);
-
useEffect(() => {
setCookie("atfl-cd-key", "");
}, []);
@@ -419,12 +412,19 @@ function PostForm({
첨부파일
-
+ {bbsInfo?.bbsTypeCd === "BBSIMAGE" ? (
+
+ ) : (
+
+ )}
)}
diff --git a/apps/common/features/src/widgets/post/ui/post-page.tsx b/apps/common/features/src/widgets/post/ui/post-page.tsx
index 25c08e685..776940266 100644
--- a/apps/common/features/src/widgets/post/ui/post-page.tsx
+++ b/apps/common/features/src/widgets/post/ui/post-page.tsx
@@ -1,11 +1,8 @@
"use client";
-import { useEffect, useState } from "react";
+import { useEffect, useRef, useState } from "react";
import { usePathname, useRouter } from "next/navigation";
-import {
- useConfirm,
- useLocalStorage,
-} from "@frontend-opensource/use-react-hooks";
+import { useConfirm } from "@frontend-opensource/use-react-hooks";
import { useQuery } from "@tanstack/react-query";
import {
getCoreRowModel,
@@ -23,22 +20,24 @@ import {
SelectItem,
SelectTrigger,
SelectValue,
+ Skeleton,
} from "@common/components";
import { PostApi, type Post, type PostParams } from "@/entities/post";
-import type { Board } from "@/entities/board";
+import type { BoardType } from "@/entities/board";
import { ENDPOINT } from "@/shared/config";
import { useMenuStore, useUserStore } from "@/shared/lib";
+import { GridViewDataTable } from "@/shared/ui/grid-view-data-table";
import { columns } from "../model/post-table-columns";
+import { createColumns } from "../model/grid-view-table-columns";
function PostPage({ bbsId }: { bbsId: string }) {
const router = useRouter();
const pathname = usePathname();
const { confirm } = useConfirm();
- const [storedBbsInfo] = useLocalStorage("bbs-info", "");
- const { pageMenuAuthority } = useMenuStore((state) => state);
const { userInfo } = useUserStore((state) => state);
+ const { bbsInfo, pageMenuAuthority } = useMenuStore((state) => state);
+ const bbsType = bbsInfo?.bbsTypeCd as BoardType;
- const [bbsInfo, setBbsInfo] = useState(null);
const [postParams, setPostParams] = useState({
keywordType: "title",
keyword: "",
@@ -49,6 +48,8 @@ function PostPage({ bbsId }: { bbsId: string }) {
});
const [rowSelection, setRowSelection] = useState({});
+ const thumbRefs = useRef