Merge pull request #821 from SuanmoSuanyangTechnology/feature/ui_upgrade_zy
fix(web): editor third variable init
This commit is contained in:
@@ -100,15 +100,29 @@ const InitialValuePlugin: React.FC<InitialValuePluginProps> = ({ value, options
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (match) {
|
if (match) {
|
||||||
const [_, nodeId, label] = match;
|
const [_, nodeId, rest] = match;
|
||||||
|
const restParts = rest.split('.');
|
||||||
|
const isThreeLevel = restParts.length >= 2;
|
||||||
|
const parentLabel = isThreeLevel ? restParts.slice(0, -1).join('.') : undefined;
|
||||||
|
const label = restParts[restParts.length - 1];
|
||||||
|
|
||||||
const suggestion = optionsRef.current.find(s => {
|
let suggestion = optionsRef.current.find(s => {
|
||||||
if (nodeId === 'sys') {
|
if (nodeId === 'sys') {
|
||||||
return s.nodeData.type === 'start' && s.label === `sys.${label}`
|
return s.nodeData.type === 'start' && s.label === `sys.${rest}`
|
||||||
}
|
}
|
||||||
return s.nodeData.id === nodeId && s.label === label
|
return s.nodeData.id === nodeId && s.label === rest
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Search in children for three-level variables (e.g. nodeId.parentLabel.label)
|
||||||
|
if (!suggestion && isThreeLevel) {
|
||||||
|
for (const s of optionsRef.current) {
|
||||||
|
if (s.nodeData.id === nodeId && s.label === parentLabel && s.children) {
|
||||||
|
const child = s.children.find(c => c.label === label);
|
||||||
|
if (child) { suggestion = child; break; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (suggestion) {
|
if (suggestion) {
|
||||||
paragraph.append($createVariableNode(suggestion));
|
paragraph.append($createVariableNode(suggestion));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user