diff --git a/src/components/EditorRoadmap/EditorRoadmap.tsx b/src/components/EditorRoadmap/EditorRoadmap.tsx index d69974240..822422ae8 100644 --- a/src/components/EditorRoadmap/EditorRoadmap.tsx +++ b/src/components/EditorRoadmap/EditorRoadmap.tsx @@ -7,6 +7,8 @@ import { Spinner } from '../ReactIcons/Spinner'; import 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'; type EditorRoadmapProps = { resourceId: string; @@ -20,6 +22,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 +30,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 +43,28 @@ export function EditorRoadmap(props: EditorRoadmapProps) { setRoadmapData(response); setIsLoading(false); + setHasSwitchedRoadmap(!!switchRoadmapId); }; useEffect(() => { loadRoadmapData().finally(); }, [resourceId]); + const aspectRatio = dimensions.width / dimensions.height; + if (!roadmapData || isLoading) { return (