Skip to content

Commit 2a33d2d

Browse files
committed
improving array and dialog-form-node
1 parent 7d42ade commit 2a33d2d

File tree

3 files changed

+27
-11
lines changed

3 files changed

+27
-11
lines changed

libs/visual-programming-system/src/forms/form-fields/array.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export class ArrayFieldChildComponent extends FormFieldComponent<ArrayFieldProps
4242
constructor(parent: BaseComponent | null, props: ArrayFieldProps) {
4343
super(parent, props);
4444
this.fieldName = props.fieldName;
45-
this.values = props.values.map((value) => {
45+
this.values = (props.values ?? []).map((value) => {
4646
return { id: crypto.randomUUID(), arrayItems: value };
4747
});
4848
this.template = createTemplate(

libs/visual-programming-system/src/utils/create-rect-node.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,7 @@ export const visualNodeFactory = <T extends BaseNodeInfo>(
439439
additionalClassNames?: string;
440440
additionalInnerNodeClassNames?: string;
441441
hasFormInPopup?: boolean;
442+
hasSettingsPopup?: boolean;
442443
hasStaticWidthHeight?: boolean;
443444
decoratorTitle?: string;
444445
category?: string;
@@ -545,8 +546,7 @@ export const visualNodeFactory = <T extends BaseNodeInfo>(
545546
const nodeInstance = createRectNode<T>(
546547
nodeTypeName,
547548
title,
548-
549-
formElements,
549+
settings?.hasSettingsPopup ? [] : formElements,
550550
x,
551551
y,
552552
width,

libs/web-flow-executor/src/nodes/dialog-form.ts

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -209,11 +209,17 @@ export const dialogFormNode = (updated: () => void): NodeTask<NodeInfo> => {
209209
maxConnections: 1,
210210
},
211211
],
212-
(values?: InitialValues) => {
212+
(_idvalues?: InitialValues) => {
213+
return [];
214+
},
215+
(nodeInstance) => {
216+
node = nodeInstance.node as IRectNodeComponent<NodeInfo>;
217+
const values = node?.nodeInfo?.formValues;
213218
const formElements = [
214219
{
215220
fieldType: FormFieldType.Text,
216221
fieldName: fieldName,
222+
label: 'Message test',
217223
value: values?.[fieldName] ?? '',
218224
settings: {
219225
showLabel: true,
@@ -234,12 +240,15 @@ export const dialogFormNode = (updated: () => void): NodeTask<NodeInfo> => {
234240
},
235241
{
236242
fieldType: FormFieldType.Array,
237-
fieldName: fieldName,
238-
value: values?.[fieldName] ?? '',
239-
values: (values?.[formControlsfieldName] ?? []) as Record<
243+
fieldName: formControlsfieldName,
244+
value: (values?.[formControlsfieldName] ?? []) as Record<
240245
string,
241246
string
242247
>[],
248+
// values: (values?.[formControlsfieldName] ?? []) as Record<
249+
// string,
250+
// string
251+
// >[],
243252
settings: {
244253
showLabel: true,
245254
},
@@ -270,18 +279,25 @@ export const dialogFormNode = (updated: () => void): NodeTask<NodeInfo> => {
270279
},
271280
},
272281
];
273-
return formElements;
274-
},
275-
(nodeInstance) => {
276-
node = nodeInstance.node as IRectNodeComponent<NodeInfo>;
282+
277283
canvasAppInstance = nodeInstance.contextInstance;
284+
if (node.nodeInfo) {
285+
node.nodeInfo.formElements = formElements;
286+
node.nodeInfo.formValues = {
287+
...node.nodeInfo.formValues,
288+
[fieldName]: values?.[fieldName] ?? '',
289+
[formControlsfieldName]: values?.[formControlsfieldName] ?? [],
290+
};
291+
node.nodeInfo.isSettingsPopup = true;
292+
}
278293
},
279294
{
280295
hasTitlebar: false,
281296
hasFormInPopup: true,
282297
childNodeWrapperClass: 'flex w-full h-full p-[16px]',
283298
additionalClassNames: 'text-center',
284299
hasStaticWidthHeight: true,
300+
hasSettingsPopup: true,
285301
},
286302
dialogNodeElement,
287303
true

0 commit comments

Comments
 (0)