@@ -5,13 +5,11 @@ import {
55 ColorMode ,
66 useReactFlow ,
77 Node ,
8- Connection ,
98 Edge ,
109 Background ,
1110 ControlButton ,
1211 OnNodesChange ,
1312 OnEdgesChange ,
14- Panel ,
1513 OnSelectionChangeFunc ,
1614 ReactFlowProvider ,
1715} from "@xyflow/react" ;
@@ -21,13 +19,12 @@ import { TaskNode } from "./nodes/TaskNode";
2119import { TopicNode } from "./nodes/TopicNode" ;
2220import { ImageNode } from "./nodes/ImageNode" ;
2321import { TextNode } from "./nodes/TextNode" ;
24- import { RoadmapData , NodeData , ImageNodeData , TextNodeData , Settings } from "./types" ;
22+ import { RoadmapData , NodeData , ImageNodeData , TextNodeData } from "./types" ;
2523import { SettingsDrawer } from "./SettingsDrawer" ;
2624import FloatingEdge from "./FloatingEdge" ;
2725import { EditorToolbar } from "./EditorToolbar" ;
28- import { parseRoadmapData } from "./helper" ;
2926import { LearningMap } from "./LearningMap" ;
30- import { Info , Redo , Undo , RotateCw , ShieldAlert , X } from "lucide-react" ;
27+ import { Info , Redo , Undo , RotateCw , X } from "lucide-react" ;
3128import { useEditorStore , useTemporalStore } from "./editorStore" ;
3229import { MultiNodePanel } from "./MultiNodePanel" ;
3330import { getTranslations } from "./translations" ;
@@ -49,7 +46,6 @@ const edgeTypes = {
4946export interface LearningMapEditorProps {
5047 roadmapData ?: string | RoadmapData ;
5148 language ?: string ;
52- onChange ?: ( data : RoadmapData ) => void ;
5349 jsonStore ?: string ;
5450}
5551
@@ -60,13 +56,9 @@ const getDefaultFilename = () => {
6056} ;
6157
6258export function LearningMapEditor ( {
63- roadmapData,
6459 language = "en" ,
65- onChange,
6660 jsonStore = "https://json.openpatch.org" ,
6761} : LearningMapEditorProps ) {
68-
69- const parsedRoadmap = parseRoadmapData ( roadmapData || "" ) ;
7062 const { screenToFlowPosition, zoomIn, zoomOut, setCenter, fitView } = useReactFlow ( ) ;
7163
7264 // Only get minimal state needed in this component
@@ -156,10 +148,6 @@ export function LearningMapEditor({
156148 { action : t . shortcuts . paste , shortcut : "Ctrl+V" } ,
157149 ] ;
158150
159- useEffect ( ( ) => {
160- loadRoadmapData ( parsedRoadmap ) ;
161- } , [ roadmapData , loadRoadmapData ] ) ;
162-
163151 useEffect ( ( ) => {
164152 // Filter out existing debug edges, but use the store's edges directly to avoid dependency loop
165153 const baseEdges = useEditorStore . getState ( ) . edges . filter ( ( e ) => ! e . id . startsWith ( "debug-" ) ) ;
@@ -327,29 +315,14 @@ export function LearningMapEditor({
327315 [ nextNodeId , lastMousePosition , screenToFlowPosition , addNode , setNextNodeId , t ]
328316 ) ;
329317
330- const handleSave = useCallback ( ( ) => {
331- const roadmapData = getRoadmapData ( ) ;
332-
333- if ( onChange ) {
334- onChange ( roadmapData ) ;
335- return ;
336- } else {
337- const root = document . querySelector ( "hyperbook-learningmap-editor" ) ;
338- if ( root ) {
339- root . dispatchEvent ( new CustomEvent ( "change" , { detail : roadmapData } ) ) ;
340- }
341- }
342- } , [ nodes , edges , settings , onChange , getRoadmapData ] ) ;
343-
344318 const togglePreviewMode = useCallback ( ( ) => {
345- handleSave ( ) ;
346319 const newMode = ! previewMode ;
347320 setPreviewMode ( newMode ) ;
348321 if ( newMode ) {
349322 setDebugMode ( false ) ;
350323 closeDrawer ( ) ;
351324 }
352- } , [ previewMode , setPreviewMode , setDebugMode , handleSave , closeDrawer ] ) ;
325+ } , [ previewMode , setPreviewMode , setDebugMode , closeDrawer ] ) ;
353326
354327 const toggleDebugMode = useCallback ( ( ) => {
355328 setDebugMode ( ! debugMode ) ;
@@ -614,11 +587,6 @@ export function LearningMapEditor({
614587
615588 useEffect ( ( ) => {
616589 const handleKeyDown = ( e : KeyboardEvent ) => {
617- //save shortcut
618- if ( ( e . ctrlKey || e . metaKey ) && e . key === 's' && ! e . shiftKey ) {
619- e . preventDefault ( ) ;
620- handleSave ( ) ;
621- }
622590 // undo shortcut
623591 if ( ( e . ctrlKey || e . metaKey ) && e . key === 'z' && ! e . shiftKey ) {
624592 e . preventDefault ( ) ;
@@ -730,7 +698,7 @@ export function LearningMapEditor({
730698 return ( ) => {
731699 window . removeEventListener ( "keydown" , handleKeyDown ) ;
732700 } ;
733- } , [ handleSave , handleUndo , handleRedo , addNewNode , helpOpen , setHelpOpen , togglePreviewMode , toggleDebugMode ,
701+ } , [ handleUndo , handleRedo , addNewNode , helpOpen , setHelpOpen , togglePreviewMode , toggleDebugMode ,
734702 handleZoomIn , handleZoomOut , handleResetZoom , handleFitView , handleZoomToSelection , handleToggleGrid ,
735703 handleResetMap , handleCut , handleCopy , handlePaste , handleSelectAll ] ) ;
736704
0 commit comments