Skip to content

Commit 543d224

Browse files
committed
process props
1 parent 9a469cb commit 543d224

1 file changed

Lines changed: 18 additions & 1 deletion

File tree

packages/learningmap/src/LearningMapEditor.tsx

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,16 @@ import { WelcomeMessage } from "./WelcomeMessage";
1212
import { EditorCanvas } from "./EditorCanvas";
1313
import { EditorDialogs } from "./EditorDialogs";
1414
import { KeyboardShortcuts } from "./KeyboardShortcuts";
15+
import { useEffect } from "react";
1516

1617
export interface LearningMapEditorProps {
1718
roadmapData?: string | RoadmapData;
1819
language?: string;
19-
onChange?: (data: RoadmapData) => void;
2020
jsonStore?: string;
2121
}
2222

2323
export function LearningMapEditor({
24+
roadmapData,
2425
language = "en",
2526
jsonStore = "https://json.openpatch.org",
2627
}: LearningMapEditorProps) {
@@ -34,6 +35,7 @@ export function LearningMapEditor({
3435
const getRoadmapData = useEditorStore(state => state.getRoadmapData);
3536
const setJsonStore = useEditorStore(state => state.setJsonStore);
3637
const setDefaultLanguage = useEditorStore(state => state.setDefaultLanguage);
38+
const loadRoadmapData = useEditorStore(state => state.loadRoadmapData);
3739

3840
// Use language from settings if available, otherwise use prop
3941
const effectiveLanguage = settings?.language || language;
@@ -43,6 +45,21 @@ export function LearningMapEditor({
4345
setDefaultLanguage(language);
4446
}, [jsonStore, language, setJsonStore, setDefaultLanguage]);
4547

48+
useEffect(() => {
49+
if (roadmapData) {
50+
if (typeof roadmapData === "string") {
51+
try {
52+
const parsed = JSON.parse(roadmapData);
53+
loadRoadmapData(parsed);
54+
} catch (e) {
55+
console.error("Failed to parse roadmapData JSON string", e);
56+
}
57+
} else {
58+
loadRoadmapData(roadmapData);
59+
}
60+
}
61+
}, [roadmapData, loadRoadmapData]);
62+
4663

4764
return (
4865
<>

0 commit comments

Comments
 (0)