diff --git a/src/components/DockBuilder/DockBuilder.jsx b/src/components/DockBuilder/DockBuilder.jsx index bafc351..41b08e7 100644 --- a/src/components/DockBuilder/DockBuilder.jsx +++ b/src/components/DockBuilder/DockBuilder.jsx @@ -117,10 +117,23 @@ export const DockBuilder = () => { }; const uploadFile = (e) => { - // TODO: Our own upload the file we must have downloaded previously - // TODO: extract the json from the file - // TODO: load the json to the editor - // TODO: render all + const file = e.target.files[0]; + if (!file) return; + const reader = new FileReader(); + reader.onload = function (event) { + try { + const json = JSON.parse(event.target.result); + console.log(json); + editorMemo.loadFromJSON(json, () => { + editorMemo.renderAll(); + }); + } catch (err) { + alert("Invalid file format. Please select a valid .dock file."); + } + }; + reader.readAsText(file); + // Reset file input to allow reupload of the same file + e.target.value = ""; }; const downloadImage = useCallback(() => {