diff --git a/src/backend.js b/src/backend.js deleted file mode 100644 index c901a6c23d71c29a02b7988183b0ecd9de39fd77..0000000000000000000000000000000000000000 --- a/src/backend.js +++ /dev/null @@ -1,9 +0,0 @@ -import { Editor } from "./editor/js/components/editor"; - -import ReactDOM from "react-dom"; -import React from "react"; - -ReactDOM.render( - <Editor />, - document.getElementById("knowledge-space-editor") -); diff --git a/src/backend.tsx b/src/backend.tsx new file mode 100644 index 0000000000000000000000000000000000000000..9b74e3d64069081a03a25f65913fb01fa9dba325 --- /dev/null +++ b/src/backend.tsx @@ -0,0 +1,9 @@ +import { Editor } from "./editor/js/components/editor"; +import * as Config from "./config"; + +import { createRoot } from "react-dom/client"; +import React from "react"; + +const container = document.getElementById("knowledge-space-editor"); +const root = createRoot(container); +root.render(<Editor spaceId={Config.SPACE} />); diff --git a/src/editor/js/components/editor.tsx b/src/editor/js/components/editor.tsx index 800d7951b7801f8bc41414f600683eea96c8e4c3..68958660d78c070dfe6360446869181433281358 100644 --- a/src/editor/js/components/editor.tsx +++ b/src/editor/js/components/editor.tsx @@ -1,10 +1,10 @@ import React from "react"; import { Graph } from "../structures/graph/graph"; -import { loadGraphJson } from "../../../datasets"; +import { loadGraphJson } from "../../../common/datasets"; import { NodeDetails } from "./nodedetails"; import { SpaceSelect } from "./spaceselect"; import "./editor.css"; -import ReactForceGraph2d from "react-force-graph-2d"; +import { ForceGraph2D } from "react-force-graph"; import { Node } from "../structures/graph/node"; import { HistoryNavigator } from "./historynavigator"; import { GraphElement } from "../structures/graph/graphelement"; @@ -111,7 +111,7 @@ export class Editor extends React.PureComponent<propTypes, stateTypes> { graph: newGraph, }); - this.state.graph.onChangeCallbacks.push(this.onHistoryChange); + newGraph.onChangeCallbacks.push(this.onHistoryChange); // Subscribe to global events document.onkeydown = this.handleKeyDown; @@ -450,7 +450,7 @@ export class Editor extends React.PureComponent<propTypes, stateTypes> { <div id="content"> <div id="force-graph-renderer" ref={this.graphContainer}> {this.state.graph ? ( - <ReactForceGraph2d + <ForceGraph2D ref={this.renderer} width={this.state.graphWidth} graphData={{ @@ -466,11 +466,11 @@ export class Editor extends React.PureComponent<propTypes, stateTypes> { nodeCanvasObjectMode={() => "after"} linkCanvasObject={this.handleLinkCanvasObject} linkCanvasObjectMode={() => "replace"} - nodeColor={(node) => (node as Node).type.color} + nodeColor={(node: Node) => node.type.color} onNodeDrag={this.handleNodeDrag} onNodeDragEnd={this.handleNodeDragEnd} onLinkClick={this.handleLinkClick} - onBackgroundClick={(event) => + onBackgroundClick={(event: any) => this.handleBackgroundClick( event, this.extractPositions(event) diff --git a/src/editor/js/components/historynavigator.tsx b/src/editor/js/components/historynavigator.tsx index db96b6b9ce387f8192acd76e989fe7be7c5fc7ea..27d44325598147661fa1082de04e5cdfec77d53f 100644 --- a/src/editor/js/components/historynavigator.tsx +++ b/src/editor/js/components/historynavigator.tsx @@ -1,5 +1,5 @@ import React, { ChangeEvent } from "react"; -import { saveGraphJson } from "../../../datasets"; +import { saveGraphJson } from "../../../common/datasets"; import ManagedData from "../structures/manageddata"; import "./historynavigator.css"; diff --git a/src/editor/js/components/spaceselect.tsx b/src/editor/js/components/spaceselect.tsx index 80424ea474b541ba764a5e5ed3a02d7d842584af..991fd241831b9dd8a6da0d80a7a4b40e179c6248 100644 --- a/src/editor/js/components/spaceselect.tsx +++ b/src/editor/js/components/spaceselect.tsx @@ -1,6 +1,6 @@ import React, { ChangeEvent } from "react"; import { ReactNode } from "react"; -import { listAllSpaces } from "../../../datasets"; +import { listAllSpaces } from "../../../common/datasets"; import "./spaceselect.css"; type propTypes = { diff --git a/src/editor/js/structures/manageddata.ts b/src/editor/js/structures/manageddata.ts index d050c3c3106ab3363416da397e0da3e341867a48..65c6eeb1d540fa3567ea7c9b0ea1cde518f7f095 100644 --- a/src/editor/js/structures/manageddata.ts +++ b/src/editor/js/structures/manageddata.ts @@ -1,5 +1,4 @@ import { SerializableItem } from "./helper/serializableitem"; -import jQuery from "jquery"; const SAVE_BUTTON_ID = "div#ks-editor #toolbar-save"; diff --git a/webpack.common.js b/webpack.common.js index 1bf65e0f31f053fdedf5ec54b8cfa0a4255624a2..43efa1b8383ab8dc6bde108a27134111adc6311b 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -10,7 +10,7 @@ const babelOptions = { module.exports = { entry: { frontend: "./src/frontend.tsx", - backend: "./src/backend.js", + backend: "./src/backend.tsx", }, output: { filename: "[name].js",