dx: support react elements in ArrayField.fields
Massimo Melina committed
Jun 26, 2025 at 00:29 UTC
b3c5e16f2f93ecdbe01c7b2b0a9f522de4e6b45b
1 file changed
+3
-2
admin/src/ArrayField.ts
+3
-2
@@ -1,6 +1,6 @@
1
// This file is part of HFS - Copyright 2021-2023, Massimo Melina <a@rejetto.com> - License https://www.gnu.org/licenses/gpl-3.0.txt
2
3
-import { createElement as h, Fragment, useMemo, useState } from 'react'
3
+import { createElement as h, Fragment, useMemo, useState, isValidElement } from 'react'
4
import { callable, DialogOptions, Dict, Functionable, isOrderedEqual, setHidden, swap } from './misc'
5
import { Add, Edit, Delete, ArrowUpward, ArrowDownward, Undo, Check } from '@mui/icons-material'
6
import { FormDialog, formDialog } from './dialog'
@@ -71,6 +71,7 @@ export function ArrayField<T extends object>({ label, helperText, fields, value,
71
},
72
columns: [
73
...callable(fields, false).map(f => {
74
+ if (isValidElement(f)) return
75
const def = byType[f.$type]?.column
76
return _.defaults({
77
field: f.k,
@@ -85,7 +86,7 @@ export function ArrayField<T extends object>({ label, helperText, fields, value,
86
hideUnder: f.$hideUnder,
87
...f.$column,
88
}, def)
88
- }),
89
+ }).filter(Boolean),
90
{
91
field: '',
92
type: 'actions',