Move parsing up into the Editor.
This commit is contained in:
parent
3fa5ba1546
commit
aac0ebe619
@ -3,6 +3,7 @@ import "./Editor.css";
|
|||||||
import { Highlight } from "./highlight";
|
import { Highlight } from "./highlight";
|
||||||
import { buildShadow } from "./shadow";
|
import { buildShadow } from "./shadow";
|
||||||
import OrgAst from "./OrgAst";
|
import OrgAst from "./OrgAst";
|
||||||
|
import { parse_org } from "../../organic/target/wasm32-unknown-unknown/js/wasm";
|
||||||
|
|
||||||
const default_org_source: string = `Welcome to the Organic Wasm Demo!
|
const default_org_source: string = `Welcome to the Organic Wasm Demo!
|
||||||
|
|
||||||
@ -48,6 +49,9 @@ function Editor({ defaultValue = default_org_source }) {
|
|||||||
setHighlights([]);
|
setHighlights([]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const astTree = parse_org(value);
|
||||||
|
console.log(JSON.stringify(astTree));
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="Editor">
|
<div className="Editor">
|
||||||
<div className="Editor-textwrapper">
|
<div className="Editor-textwrapper">
|
||||||
@ -62,6 +66,7 @@ function Editor({ defaultValue = default_org_source }) {
|
|||||||
setHighlight={setHighlight}
|
setHighlight={setHighlight}
|
||||||
clearHighlights={clearHighlights}
|
clearHighlights={clearHighlights}
|
||||||
value={value}
|
value={value}
|
||||||
|
astTree={astTree}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
@ -5,11 +5,9 @@ import styles from "./OrgAst.module.css";
|
|||||||
const OrgAst = (props: {
|
const OrgAst = (props: {
|
||||||
setHighlight: Function;
|
setHighlight: Function;
|
||||||
clearHighlights: Function;
|
clearHighlights: Function;
|
||||||
|
astTree: any,
|
||||||
value: string;
|
value: string;
|
||||||
}) => {
|
}) => {
|
||||||
const ast_tree = parse_org(props.value);
|
|
||||||
console.log(JSON.stringify(ast_tree));
|
|
||||||
|
|
||||||
const [selectedNode, setSelectedNode] = useState<string>("");
|
const [selectedNode, setSelectedNode] = useState<string>("");
|
||||||
|
|
||||||
function selectNode(uid: string, start: number, end: number) {
|
function selectNode(uid: string, start: number, end: number) {
|
||||||
@ -17,14 +15,14 @@ const OrgAst = (props: {
|
|||||||
setSelectedNode(uid);
|
setSelectedNode(uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ast_tree.status !== "success") {
|
if (props.astTree.status !== "success") {
|
||||||
return <div className={styles.OrgAst}>Error! {ast_tree.content}</div>;
|
return <div className={styles.OrgAst}>Error! {props.astTree.content}</div>;
|
||||||
} else {
|
} else {
|
||||||
return (
|
return (
|
||||||
<div className={styles.OrgAst}>
|
<div className={styles.OrgAst}>
|
||||||
<OrgAstNode
|
<OrgAstNode
|
||||||
selectNode={selectNode}
|
selectNode={selectNode}
|
||||||
node={ast_tree.content}
|
node={props.astTree.content}
|
||||||
parentUniqueId="^"
|
parentUniqueId="^"
|
||||||
selectedNode={selectedNode}
|
selectedNode={selectedNode}
|
||||||
/>
|
/>
|
||||||
@ -88,7 +86,7 @@ const OrgAstNode = (props: {
|
|||||||
<div className={styles.OrgAstChildren}>
|
<div className={styles.OrgAstChildren}>
|
||||||
<OrgAstNodeList
|
<OrgAstNodeList
|
||||||
selectNode={props.selectNode}
|
selectNode={props.selectNode}
|
||||||
parentUniqueId={props.parentUniqueId}
|
parentUniqueId={uid}
|
||||||
selectedNode={props.selectedNode}
|
selectedNode={props.selectedNode}
|
||||||
node_list={props.node.children}
|
node_list={props.node.children}
|
||||||
/>
|
/>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user