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',