feat(FN-4780): complete Step 5 — clear SWR caches on version update
Fusion-Task-Id: FN-4780 Fusion-Task-Lineage: 7f052539-9d15-4997-8135-21434f065d4a
This commit is contained in:
committed by
gsxdsm
parent
508ab73486
commit
f3901808ed
@@ -1,6 +1,7 @@
|
||||
import { Loader2 } from "lucide-react";
|
||||
import { useState } from "react";
|
||||
import { consumeVersionUpdateFlag } from "../versionCheck";
|
||||
import { SWR_CACHE_KEYS, clearCache } from "../utils/swrCache";
|
||||
import "./DashboardLoader.css";
|
||||
|
||||
export type DashboardLoaderStage = "projects" | "project" | "tasks" | "ready";
|
||||
@@ -40,7 +41,15 @@ function getStepState(stepId: LoaderStep["id"], stage: DashboardLoaderStage): "d
|
||||
}
|
||||
|
||||
export function DashboardLoader({ stage }: DashboardLoaderProps) {
|
||||
const [isVersionUpdate] = useState(() => consumeVersionUpdateFlag());
|
||||
const [isVersionUpdate] = useState(() => {
|
||||
const versionUpdated = consumeVersionUpdateFlag();
|
||||
if (versionUpdated) {
|
||||
clearCache(SWR_CACHE_KEYS.TASKS_PREFIX);
|
||||
clearCache(SWR_CACHE_KEYS.PROJECTS);
|
||||
clearCache(SWR_CACHE_KEYS.CURRENT_PROJECT_ID);
|
||||
}
|
||||
return versionUpdated;
|
||||
});
|
||||
|
||||
return (
|
||||
<div
|
||||
|
||||
@@ -8,6 +8,24 @@ vi.mock("../../versionCheck", () => ({
|
||||
}));
|
||||
|
||||
import { DashboardLoader } from "../DashboardLoader";
|
||||
import { SWR_CACHE_KEYS, clearCache } from "../../utils/swrCache";
|
||||
|
||||
vi.mock("../../versionCheck", () => ({
|
||||
consumeVersionUpdateFlag: vi.fn(() => false),
|
||||
}));
|
||||
|
||||
vi.mock("../../utils/swrCache", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../../utils/swrCache")>();
|
||||
return {
|
||||
...actual,
|
||||
clearCache: vi.fn(),
|
||||
};
|
||||
});
|
||||
|
||||
import { consumeVersionUpdateFlag } from "../../versionCheck";
|
||||
|
||||
const mockConsumeVersionUpdateFlag = vi.mocked(consumeVersionUpdateFlag);
|
||||
const mockClearCache = vi.mocked(clearCache);
|
||||
|
||||
function getStep(label: string): HTMLElement {
|
||||
const step = screen.getByText(label).closest("li");
|
||||
|
||||
Reference in New Issue
Block a user