fix: remove stale React Query cache on site inspection complete
SSE complete event now removes the cached siteInspection query data so the result page fetches fresh data with aggregate_scores from API. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
import { useEffect, useRef } from "react";
|
import { useEffect, useRef } from "react";
|
||||||
import { useRouter } from "next/navigation";
|
import { useRouter } from "next/navigation";
|
||||||
|
import { useQueryClient } from "@tanstack/react-query";
|
||||||
import { useSiteInspectionStore } from "@/stores/useSiteInspectionStore";
|
import { useSiteInspectionStore } from "@/stores/useSiteInspectionStore";
|
||||||
import { api } from "@/lib/api";
|
import { api } from "@/lib/api";
|
||||||
import type {
|
import type {
|
||||||
@ -29,6 +30,7 @@ export function useSiteInspectionSSE(siteInspectionId: string | null) {
|
|||||||
setError,
|
setError,
|
||||||
} = useSiteInspectionStore();
|
} = useSiteInspectionStore();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
const queryClient = useQueryClient();
|
||||||
const eventSourceRef = useRef<EventSource | null>(null);
|
const eventSourceRef = useRef<EventSource | null>(null);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -94,7 +96,10 @@ export function useSiteInspectionSSE(siteInspectionId: string | null) {
|
|||||||
const data: SSESiteComplete = JSON.parse(e.data);
|
const data: SSESiteComplete = JSON.parse(e.data);
|
||||||
setCompleted(data.aggregate_scores);
|
setCompleted(data.aggregate_scores);
|
||||||
eventSource.close();
|
eventSource.close();
|
||||||
// 결과 페이지로 자동 이동
|
// stale 캐시 제거 → 결과 페이지에서 fresh 데이터 로드
|
||||||
|
queryClient.removeQueries({
|
||||||
|
queryKey: ["siteInspection", siteInspectionId],
|
||||||
|
});
|
||||||
router.push(`/site-inspections/${siteInspectionId}`);
|
router.push(`/site-inspections/${siteInspectionId}`);
|
||||||
} catch {
|
} catch {
|
||||||
// JSON 파싱 실패 무시
|
// JSON 파싱 실패 무시
|
||||||
@ -138,5 +143,6 @@ export function useSiteInspectionSSE(siteInspectionId: string | null) {
|
|||||||
setCompleted,
|
setCompleted,
|
||||||
setError,
|
setError,
|
||||||
router,
|
router,
|
||||||
|
queryClient,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user