From adfd841a0cdc4a5e3279e10ddab8952a90519cd1 Mon Sep 17 00:00:00 2001 From: chsua Date: Fri, 15 Sep 2023 01:49:13 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20(#619)=20=EB=A7=88=EA=B0=90=EB=90=9C=20?= =?UTF-8?q?=EA=B2=8C=EC=8B=9C=EB=AC=BC=20=EC=83=81=EC=84=B8=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=201=EC=8B=9C=EA=B0=84=20=EC=BA=90=EC=8B=B1=ED=95=98?= =?UTF-8?q?=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/hooks/query/post/usePostDetail.ts | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/frontend/src/hooks/query/post/usePostDetail.ts b/frontend/src/hooks/query/post/usePostDetail.ts index 643d1256d..2824693ea 100644 --- a/frontend/src/hooks/query/post/usePostDetail.ts +++ b/frontend/src/hooks/query/post/usePostDetail.ts @@ -1,4 +1,4 @@ -import { useQuery } from '@tanstack/react-query'; +import { useQuery, useQueryClient } from '@tanstack/react-query'; import { PostInfo } from '@type/post'; @@ -6,14 +6,30 @@ import { getPost, getPostForGuest } from '@api/post'; import { QUERY_KEY } from '@constants/queryKey'; +import { checkClosedPost } from '@utils/time'; + export const usePostDetail = (isLoggedIn: boolean, postId: number) => { const fetchApi = isLoggedIn ? getPost : getPostForGuest; + const queryClient = useQueryClient(); + const POST_DETAIL_QUERY_KEY = [QUERY_KEY.POST_DETAIL, postId, isLoggedIn]; + const { data, isError, isLoading, error } = useQuery( - [QUERY_KEY.POST_DETAIL, postId, isLoggedIn], + POST_DETAIL_QUERY_KEY, () => fetchApi(postId), { suspense: true, + + onSuccess: data => { + if (checkClosedPost(data.deadline)) { + queryClient.setQueryDefaults(POST_DETAIL_QUERY_KEY, { + cacheTime: 60 * 60 * 1000, + staleTime: 60 * 60 * 1000, + }); + } + + return data; + }, } );