Skip to content

Commit 2eb1b4b

Browse files
committed
Parse input
1 parent feb41e8 commit 2eb1b4b

File tree

3 files changed

+74
-1
lines changed

3 files changed

+74
-1
lines changed

Diff for: package-lock.json

+53
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: package.json

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"dependencies": {
1313
"@codemirror/lang-json": "^6.0.1",
1414
"@codemirror/lang-sql": "^6.6.3",
15+
"@dbml/core": "^3.9.3",
1516
"@douyinfe/semi-ui": "^2.51.3",
1617
"@lexical/react": "^0.12.5",
1718
"@uiw/codemirror-theme-github": "^4.21.25",

Diff for: src/components/EditorSidePanel/DBMLEditor/DBMLEditor.jsx

+20-1
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,35 @@
1+
import { useEffect, useState } from "react";
12
import CodeMirror from "@uiw/react-codemirror";
23
import { vscodeDark, vscodeLight } from "@uiw/codemirror-theme-vscode";
34
import { languageExtension } from "../../../data/editorExtensions";
45
import { useSettings } from "../../../hooks";
6+
import { useDebounceValue } from "usehooks-ts";
7+
import { Parser } from "@dbml/core";
58
import "./styles.css";
69

10+
const parser = new Parser();
11+
712
export default function DBMLEditor() {
813
const { settings } = useSettings();
14+
const [value, setValue] = useState("");
15+
const [debouncedValue] = useDebounceValue(value, 1000);
16+
17+
useEffect(() => {
18+
if (debouncedValue) {
19+
try {
20+
const database = parser.parse(debouncedValue, "dbml");
21+
console.log(database);
22+
} catch (e) {
23+
console.log(e);
24+
}
25+
}
26+
}, [debouncedValue]);
27+
928
return (
1029
<div>
1130
<CodeMirror
1231
extensions={languageExtension.sql}
13-
onChange={() => {}}
32+
onChange={(v) => setValue(v)}
1433
theme={settings.mode === "dark" ? vscodeDark : vscodeLight}
1534
/>
1635
</div>

0 commit comments

Comments
 (0)