From 5a6f6ffa7efd35e11eb9c73098fad471e337508f Mon Sep 17 00:00:00 2001 From: jyh071116 Date: Wed, 27 Dec 2023 11:44:48 +0900 Subject: [PATCH 1/4] =?UTF-8?q?chore(context):=20currentCategory=20?= =?UTF-8?q?=EC=A0=95=EC=9D=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/templates/post/context/currentCategory.context.ts | 7 +++++++ src/templates/post/context/index.ts | 1 + 2 files changed, 8 insertions(+) create mode 100644 src/templates/post/context/currentCategory.context.ts create mode 100644 src/templates/post/context/index.ts diff --git a/src/templates/post/context/currentCategory.context.ts b/src/templates/post/context/currentCategory.context.ts new file mode 100644 index 00000000..ea434ced --- /dev/null +++ b/src/templates/post/context/currentCategory.context.ts @@ -0,0 +1,7 @@ +import { atom } from "jotai"; +import { PostCategoryType } from "../types"; +import { CATEGORY } from "../constants"; + +const currentCategoryContext = atom(CATEGORY.COMMON); + +export default currentCategoryContext; diff --git a/src/templates/post/context/index.ts b/src/templates/post/context/index.ts new file mode 100644 index 00000000..be6470d3 --- /dev/null +++ b/src/templates/post/context/index.ts @@ -0,0 +1 @@ +export { default as currentCategory } from "./currentCategory.context"; From 0492ef15cadd41125ab388f13efa5deb51b26d21 Mon Sep 17 00:00:00 2001 From: jyh071116 Date: Wed, 27 Dec 2023 11:46:31 +0900 Subject: [PATCH 2/4] =?UTF-8?q?chore(post):=20usePost=20=EC=A0=84=EC=97=AD?= =?UTF-8?q?=20state=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/templates/post/hooks/usePost.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/templates/post/hooks/usePost.ts b/src/templates/post/hooks/usePost.ts index 6826afb5..231e22ea 100644 --- a/src/templates/post/hooks/usePost.ts +++ b/src/templates/post/hooks/usePost.ts @@ -3,17 +3,17 @@ import { useRouter } from "next/navigation"; import dayjs from "dayjs"; import React from "react"; import Swal from "sweetalert2"; +import { useAtom } from "jotai"; import { useUser } from "@/@user/hooks"; import { KEY, ROUTER } from "@/constants"; -import { CATEGORY } from "../constants"; import { defaultPostData } from "../assets/data"; import { useDeletePostMutation } from "../services/post/mutation.service"; import { Post, PostCategoryType } from "../types"; +import currentCategoryContext from "../context/currentCategory.context"; const usePost = (defaultPostDataState?: Post) => { const [postData, setPostData] = React.useState(defaultPostData); - const [currentCategory, setCurrentCategory] = - React.useState(CATEGORY.COMMON); + const [currentCategory, setCurrentCategory] = useAtom(currentCategoryContext); const { mutate: deletePostMutate } = useDeletePostMutation(); const { user } = useUser(); From b375ad8f95f78f165e115c98b286d42df3c92868 Mon Sep 17 00:00:00 2001 From: jyh071116 Date: Wed, 27 Dec 2023 11:57:20 +0900 Subject: [PATCH 3/4] =?UTF-8?q?chore(post):=20write=20page=20=EC=A0=84?= =?UTF-8?q?=EC=97=AD=20state=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/templates/post/hooks/usePostWritable.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/templates/post/hooks/usePostWritable.ts b/src/templates/post/hooks/usePostWritable.ts index eaa48b6f..4f1a4fc6 100644 --- a/src/templates/post/hooks/usePostWritable.ts +++ b/src/templates/post/hooks/usePostWritable.ts @@ -1,5 +1,7 @@ import React from "react"; +import { useAtom } from "jotai"; import { useImageUpload } from "@/hooks"; +import { useUser } from "@/@user/hooks"; import { getFilteredPostDataByCategory, getPostIsValid } from "../helpers"; import { useCreatePostMutation, @@ -7,10 +9,19 @@ import { } from "../services/post/mutation.service"; import { Post, PostCategoryType, PostData } from "../types"; import { defaultPostData } from "../assets/data"; +import currentCategoryContext from "../context/currentCategory.context"; // edit과 write를 동시에 처리하는 훅 const usePostWritable = (defaultPostDataState?: Post) => { - const [postData, setPostData] = React.useState(defaultPostData); + const { isAdmin } = useUser(); + const [currentCategory] = useAtom(currentCategoryContext); + + const is유저가공지사항접근 = !isAdmin && currentCategory === "NOTICE"; + + const [postData, setPostData] = React.useState({ + ...defaultPostData, + category: is유저가공지사항접근 ? "COMMON" : currentCategory, + }); const [lostImageUrl, setLostImageUrl] = React.useState(); const { mutate: updatePostMutate } = useUpdatePostMutation(); const { mutate: createPostMutate } = useCreatePostMutation(); From cf22f36c76ff3f8e02afa5063a81964d48eb4428 Mon Sep 17 00:00:00 2001 From: jyh071116 Date: Wed, 27 Dec 2023 12:08:08 +0900 Subject: [PATCH 4/4] =?UTF-8?q?chore(re-export):=20=EB=B3=80=EC=88=98?= =?UTF-8?q?=EB=AA=85=20=ED=98=BC=EB=8F=99=20=EC=9D=B4=EC=8A=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/templates/post/context/index.ts | 2 +- src/templates/post/hooks/usePost.ts | 2 +- src/templates/post/hooks/usePostWritable.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/templates/post/context/index.ts b/src/templates/post/context/index.ts index be6470d3..87217f1e 100644 --- a/src/templates/post/context/index.ts +++ b/src/templates/post/context/index.ts @@ -1 +1 @@ -export { default as currentCategory } from "./currentCategory.context"; +export { default as currentCategoryContext } from "./currentCategory.context"; diff --git a/src/templates/post/hooks/usePost.ts b/src/templates/post/hooks/usePost.ts index 231e22ea..0d05dcff 100644 --- a/src/templates/post/hooks/usePost.ts +++ b/src/templates/post/hooks/usePost.ts @@ -9,7 +9,7 @@ import { KEY, ROUTER } from "@/constants"; import { defaultPostData } from "../assets/data"; import { useDeletePostMutation } from "../services/post/mutation.service"; import { Post, PostCategoryType } from "../types"; -import currentCategoryContext from "../context/currentCategory.context"; +import { currentCategoryContext } from "../context"; const usePost = (defaultPostDataState?: Post) => { const [postData, setPostData] = React.useState(defaultPostData); diff --git a/src/templates/post/hooks/usePostWritable.ts b/src/templates/post/hooks/usePostWritable.ts index 4f1a4fc6..70c8a672 100644 --- a/src/templates/post/hooks/usePostWritable.ts +++ b/src/templates/post/hooks/usePostWritable.ts @@ -9,7 +9,7 @@ import { } from "../services/post/mutation.service"; import { Post, PostCategoryType, PostData } from "../types"; import { defaultPostData } from "../assets/data"; -import currentCategoryContext from "../context/currentCategory.context"; +import { currentCategoryContext } from "../context"; // edit과 write를 동시에 처리하는 훅 const usePostWritable = (defaultPostDataState?: Post) => {