check group

This commit is contained in:
codetypes committed 2025-03-17 22:55:56 +08:00
1 parent f37bf6b48a
commit deaa12ff4b
9 files changed
+51 -16

No files matched your search

+2
View File
@@ -495,6 +495,7 @@ export const Editor: FC<EditorProps> = ({ onUpdate: updateState, data: editor, .
editor.desc = editTree.data.desc || "";
editor.export = editTree.data.export !== false;
editor.group = editTree.data.group || [];
b3util.updateUsingGroups(editor.group);
if (editor.data.firstid !== editTree.data.firstid) {
editor.firstid = editTree.data.firstid ?? 1;
editor.declare.vars = editTree.data.declare.vars || [];
@@ -1205,6 +1206,7 @@ export const Editor: FC<EditorProps> = ({ onUpdate: updateState, data: editor, .
useEffect(() => {
if (workspace.editing === editor) {
checkSubtree();
b3util.updateUsingGroups(editor.group);
}
}, [workspace.editing]);
+15 -1
View File
@@ -43,6 +43,7 @@ import {
isValidVariableName,
isVariadic,
loadVarDef,
usingGroups,
} from "../misc/b3util";
import { Hotkey, isMacos } from "../misc/keys";
import { mergeClassNames } from "../misc/util";
@@ -746,7 +747,20 @@ const NodeInspector: FC = () => {
<Form.Item name="id" label={t("node.id")}>
<Input disabled={true} />
</Form.Item>
<Form.Item name="type" label={t("node.type")}>
<Form.Item
name="type"
label={t("node.type")}
rules={[
{
validator() {
if (def.group && !usingGroups[def.group]) {
return Promise.reject(new Error(t("node.invalidGroup", { group: def.group })));
}
return Promise.resolve();
},
},
]}
>
<Input disabled={true} />
</Form.Item>
<Form.Item name="children" label={t("node.children")}>
+3 -3
View File
@@ -1,7 +1,7 @@
import G6 from "@antv/g6";
import { useWorkspace } from "../contexts/workspace-context";
import { TreeGraphData, getNodeType } from "../misc/b3type";
import { checkTreeData, getNodeDefs } from "../misc/b3util";
import { checkTreeData, nodeDefs, usingGroups } from "../misc/b3util";
import i18n from "../misc/i18n";
import { isMacos } from "../misc/keys";
@@ -142,14 +142,14 @@ G6.registerNode(
},
draw(cfg, group) {
const data = cfg as TreeGraphData;
const nodeDefs = getNodeDefs();
const nodeDef = nodeDefs.get(data.name);
let classify = getNodeType(nodeDef);
let color = nodeDef.color || NODE_COLORS[classify] || NODE_COLORS["Other"];
if (
!nodeDefs.has(data.name) ||
(data.path && !data.children?.length) ||
!checkTreeData(data)
!checkTreeData(data) ||
(nodeDef.group && !usingGroups[nodeDef.group])
) {
classify = "Error";
color = NODE_COLORS[classify];