prevent recursive function from walking the same branch multiple times (#13231)

This commit is contained in:
Brainslug
2022-05-11 15:34:19 +02:00
committed by GitHub
parent 69e847e3fb
commit 969afbb9f6

View File

@@ -296,14 +296,15 @@ export default defineComponent({
);
}
function getFieldsForGroup(group: null | string): Field[] {
function getFieldsForGroup(group: null | string, passed: string[] = []): Field[] {
const fieldsInGroup: Field[] = fieldsParsed.value.filter(
(field) => field.meta?.group === group || (group === null && isNil(field.meta))
);
for (const field of fieldsInGroup) {
if (field.meta?.special?.includes('group')) {
fieldsInGroup.push(...getFieldsForGroup(field.meta!.field));
if (field.meta?.special?.includes('group') && !passed.includes(field.meta!.field)) {
passed.push(field.meta!.field);
fieldsInGroup.push(...getFieldsForGroup(field.meta!.field, passed));
}
}