diff --git a/apps/client/src/app/api/groups/mutation.ts b/apps/client/src/app/api/groups/mutation.ts index 923b4ff5..0cab5330 100644 --- a/apps/client/src/app/api/groups/mutation.ts +++ b/apps/client/src/app/api/groups/mutation.ts @@ -22,6 +22,7 @@ import { userQueryKey } from "@/app/api/users/query"; import { useToast } from "@/common/hook/useToast"; import { HTTP_ERROR_STATUS } from "@/shared/constant/api"; import { useMutation, useQueryClient } from "@tanstack/react-query"; +import { isBefore, startOfTomorrow } from "date-fns"; import type { HTTPError } from "ky"; import { useSession } from "next-auth/react"; import { useParams, useRouter } from "next/navigation"; @@ -287,7 +288,9 @@ export const usePostProblemMutation = (groupId: number) => { ]); ( document.querySelector( - +variables.startDate < Date.now() ? "#tab-1" : "#tab-2", + isBefore(variables.startDate, startOfTomorrow()) + ? "#tab-1" + : "#tab-2", ) as HTMLLIElement )?.click(); diff --git a/apps/client/src/app/api/groups/query.ts b/apps/client/src/app/api/groups/query.ts index 753fae46..3b79e8be 100644 --- a/apps/client/src/app/api/groups/query.ts +++ b/apps/client/src/app/api/groups/query.ts @@ -50,6 +50,10 @@ export const groupQueryKey = { ...groupQueryKey.problems(groupId), "queued", ], + expiredProblems: (groupId: number) => [ + ...groupQueryKey.problems(groupId), + "expired", + ], search: (params: SearchRequest) => [...groupQueryKey.all(), "search", params], joinRequests: (groupId: number) => [...groupQueryKey.detail(groupId), "join-requests"] as const, diff --git a/apps/client/src/app/group/[groupId]/problem-list/components/PendingList/index.tsx b/apps/client/src/app/group/[groupId]/problem-list/components/PendingList/index.tsx index 76d756a6..7bdf7835 100644 --- a/apps/client/src/app/group/[groupId]/problem-list/components/PendingList/index.tsx +++ b/apps/client/src/app/group/[groupId]/problem-list/components/PendingList/index.tsx @@ -1,4 +1,5 @@ import { getQueuedProblems } from "@/app/api/groups"; +import { groupQueryKey } from "@/app/api/groups/query"; import PendingListItem from "@/app/group/[groupId]/problem-list/components/PendingList/Item"; import { listStyle, @@ -14,8 +15,9 @@ const PendingList = ({ groupId }: { groupId: number }) => { totalPages: queuedTotalPages, setCurrentPage: setQueuedPage, } = usePaginationQuery({ - queryKey: ["queuedProblem", groupId], + queryKey: groupQueryKey.queuedProblems(groupId), queryFn: (page) => getQueuedProblems({ groupId, page, size: 7 }), + searchParam: "queued", }); const queuedList = queuedData?.content; diff --git a/apps/client/src/app/group/[groupId]/problem-list/page.tsx b/apps/client/src/app/group/[groupId]/problem-list/page.tsx index 631ee418..5dbbca4c 100644 --- a/apps/client/src/app/group/[groupId]/problem-list/page.tsx +++ b/apps/client/src/app/group/[groupId]/problem-list/page.tsx @@ -1,7 +1,7 @@ "use client"; import { getExpiredProblems, getInProgressProblems } from "@/app/api/groups"; -import { useGroupRoleQueryObject } from "@/app/api/groups/query"; +import { groupQueryKey, useGroupRoleQueryObject } from "@/app/api/groups/query"; import CheckBox from "@/common/component/CheckBox"; import Sidebar from "@/common/component/Sidebar"; import TabGroup from "@/common/component/Tab"; @@ -45,8 +45,7 @@ const ProblemListPage = ({ setCurrentPage: setInProgressPage, } = usePaginationQuery({ queryKey: [ - "inProgressProblem", - +groupId, + ...groupQueryKey.inProgressProblems(+groupId), { unsolved: isUnsolvedOnlyChecked }, ], queryFn: (page) => @@ -56,6 +55,7 @@ const ProblemListPage = ({ size: 3, unsolvedOnly: isUnsolvedOnlyChecked, }), + searchParam: "inProgress", }); const inProgressList = inProgressData?.content; @@ -65,13 +65,14 @@ const ProblemListPage = ({ totalPages: expiredTotalPages, setCurrentPage: setExpiredPage, } = usePaginationQuery({ - queryKey: ["expiredProblem", +groupId], + queryKey: groupQueryKey.expiredProblems(+groupId), queryFn: (page) => getExpiredProblems({ groupId: +groupId, page, size: 3, }), + searchParam: "expired", }); const expiredList = expiredData?.content;