Skip to content

Commit 4f22a51

Browse files
authored
fix: 토큰 재발급 동시성 이슈 수정 (#165)
* refactor: serverKy에서 401 retry 제거 / race condition 해소를 위한 변수 설정 * chore: 불필요한 console.log 제거 * refactor: serverKy에 동시성 문제 해결 코드 추가
1 parent 89ade0a commit 4f22a51

File tree

9 files changed

+498
-593
lines changed

9 files changed

+498
-593
lines changed

src/app/(protected)/(root)/_components/todayTaskTabWrapper/TodayTaskTabWrapper.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,13 @@ import type { Task } from "@/types/task";
44
import { useRouter } from "next/navigation";
55
import { useState } from "react";
66

7-
import dynamic from "next/dynamic";
87
import ExpiredTaskDrawer from "../expiredTaskDrawer/ExpiredTaskDrawer";
98
import HasAllTasksOnlyScreen from "../hasAllTasksOnlyScreen/HasAllTasksOnlyScreen";
109
import HasInProgressTasksOnlyScreen from "../hasInProgressTasksOnlyScreen/HasInProgressTasksOnlyScreen";
1110
import HasTodayAndInProgressTasksScreen from "../hasTodayAndInProgressTasksScreen/HasTodayAndInProgressTasksScreen";
1211
import HasTodayTasksOnlyScreen from "../hasTodayTasksOnlyScreen/HasTodayTasksOnlyScreen";
1312
import HasWeeklyTasksOnlyScreen from "../hasWeeklyTasksOnlyScreen/HasWeeklyTasksOnlyScreen";
14-
15-
const IsEmptyScreen = dynamic(() => import("../isEmptyScreen/IsEmptyScreen"));
13+
import IsEmptyScreen from "../isEmptyScreen/IsEmptyScreen";
1614

1715
interface TodayTaskTabWrapperProps {
1816
taskType: string;

src/app/(protected)/(root)/page.tsx

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import React, { useState, useEffect, Suspense, useCallback } from "react";
88
import Loader from "@/components/loader/Loader";
99
import useTaskFiltering from "@/hooks/useTaskFilter";
1010
import useTaskStatus from "@/hooks/useTaskStatus";
11-
import { useAuthStore } from "@/store";
1211
import CharacterDialog from "../(create)/_components/characterDialog/CharacterDialog";
1312
import FailedDialog from "../(create)/_components/failedDialog/FailedDialog";
1413
import CreateTaskSheet from "./_components/CreateTaskSheet";
@@ -22,10 +21,6 @@ const HomePageContent = () => {
2221
const router = useRouter();
2322
const { data: homeData, isPending } = useHomeData();
2423

25-
const isUserProfileLoading = useAuthStore(
26-
(state) => state.isUserProfileLoading,
27-
);
28-
2924
const { mutate: startTaskMutation } = useStartTask();
3025
const { mutate: deleteTaskMutation } = useDeleteTask();
3126

@@ -181,7 +176,7 @@ const HomePageContent = () => {
181176
handleTabChange={handleTabChange}
182177
/>
183178

184-
{isUserProfileLoading || isPending ? (
179+
{isPending ? (
185180
<Loader />
186181
) : (
187182
<main className="flex-1 overflow-y-auto px-5 pb-40 pt-28">

src/app/(protected)/(root)/weekly-tasks/page.tsx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -144,11 +144,6 @@ const WeeklyTasksPage = () => {
144144
const groupTasksByCategory = useCallback((tasks: Task[]) => {
145145
const grouped: Record<string, Task[]> = {};
146146

147-
// 개발 환경에서 디버깅용 로그
148-
if (process.env.NODE_ENV === "development" && tasks.length > 0) {
149-
console.log("Sample task:", tasks[0]);
150-
}
151-
152147
for (const task of tasks) {
153148
// persona.taskKeywordsCombination.taskType.name에서 카테고리 정보 가져오기
154149
const category =

src/app/(protected)/action/complete/page.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ export default function Complete() {
2929

3030
useEffect(() => {
3131
setCapturedImage(localStorage.getItem("capturedImage") || "");
32-
console.log("capturedImage", capturedImage);
3332
}, []);
3433

3534
useEffect(() => {

src/app/(protected)/action/remind/[taskId]/ActionRemindPageClient.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@ const useReminderCount = (initialCount: number = DEFAULT_VALUES.COUNT) => {
9090
};
9191

9292
function formatTimestamp(timestamp: string): string {
93-
console.log(timestamp);
9493
return timestamp.slice(0, 19).replace("T", " ");
9594
// return timestamp.replace('T', ' ');
9695
}
@@ -121,9 +120,7 @@ export default function ActionRemindPageClient({
121120
}
122121
setToggleForRepeatableToast(!toggleForRepeatableToast);
123122
setToastMessage("");
124-
console.log(selectedInterval, count);
125-
console.log(initialTask.triggerActionAlarmTime);
126-
console.log(formatTimestamp(initialTask.triggerActionAlarmTime));
123+
127124
mutate({
128125
taskId: initialTask?.id.toString() ?? "",
129126
data: {

src/app/(protected)/my-page/task-detail/[taskId]/ExpiredTaskDetailPage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import {
1212
} from "@/utils/dateFormat";
1313
import { getPersonaImage } from "@/utils/getPersonaImage";
1414
import Image from "next/image";
15-
import { useRouter } from "next/navigation";
1615

1716
interface TaskWithPersona extends Omit<Task, "persona" | "dueDatetime"> {
1817
persona: NonNullable<Task["persona"]>;
@@ -149,6 +148,7 @@ export default function ExpiredTaskDetailPage({ task, initialTask }: Props) {
149148
<div className="flex flex-col gap-4 p-5 bg-component-gray-secondary rounded-[16px]">
150149
{filtered.map((item, index) => (
151150
<div
151+
// biome-ignore lint/suspicious/noArrayIndexKey: <explanation>
152152
key={index}
153153
className="flex justify-between items-center w-full"
154154
>

0 commit comments

Comments
 (0)