diff --git a/.astro/settings.json b/.astro/settings.json index ae1e9bec9..3205569d2 100644 --- a/.astro/settings.json +++ b/.astro/settings.json @@ -3,6 +3,6 @@ "enabled": false }, "_variables": { - "lastUpdateCheck": 1718033223263 + "lastUpdateCheck": 1719080230711 } } \ No newline at end of file diff --git a/src/components/EditorRoadmap/EditorRoadmap.tsx b/src/components/EditorRoadmap/EditorRoadmap.tsx index d69974240..b74d7af57 100644 --- a/src/components/EditorRoadmap/EditorRoadmap.tsx +++ b/src/components/EditorRoadmap/EditorRoadmap.tsx @@ -4,9 +4,15 @@ import { type RoadmapRendererProps, } from './EditorRoadmapRenderer'; import { Spinner } from '../ReactIcons/Spinner'; -import type { ResourceType } from '../../lib/resource-progress'; +import { + clearMigratedRoadmapProgress, + type ResourceType, +} from '../../lib/resource-progress'; import { httpGet } from '../../lib/http'; import { ProgressNudge } from '../FrameRenderer/ProgressNudge'; +import { getUrlParams } from '../../lib/browser.ts'; +import { cn } from '../../lib/classname.ts'; +import { getUser } from '../../lib/jwt.ts'; type EditorRoadmapProps = { resourceId: string; @@ -20,6 +26,7 @@ type EditorRoadmapProps = { export function EditorRoadmap(props: EditorRoadmapProps) { const { resourceId, resourceType = 'roadmap', dimensions } = props; + const [hasSwitchedRoadmap, setHasSwitchedRoadmap] = useState(false); const [isLoading, setIsLoading] = useState(true); const [roadmapData, setRoadmapData] = useState< Omit | undefined @@ -27,9 +34,11 @@ export function EditorRoadmap(props: EditorRoadmapProps) { const loadRoadmapData = async () => { setIsLoading(true); + const { r: switchRoadmapId } = getUrlParams(); + const { response, error } = await httpGet< Omit - >(`/${resourceId}.json`); + >(`/${switchRoadmapId || resourceId}.json`); if (error) { console.error(error); @@ -38,21 +47,29 @@ export function EditorRoadmap(props: EditorRoadmapProps) { setRoadmapData(response); setIsLoading(false); + setHasSwitchedRoadmap(!!switchRoadmapId); }; useEffect(() => { + clearMigratedRoadmapProgress(resourceType, resourceId); loadRoadmapData().finally(); }, [resourceId]); + const aspectRatio = dimensions.width / dimensions.height; + if (!roadmapData || isLoading) { return (