nicer array-field
Massimo Melina committed
Jan 30, 2025 at 11:18 UTC
f2b1c8769e3e24cdab04a1c4e65380ea85be0fc0
1 file changed
+6
-4
admin/src/ArrayField.ts
+6
-4
@@ -9,7 +9,7 @@ import { BoolField, FieldDescriptor, FieldProps, labelFromKey } from '@hfs/mui-g
9
import { Box, FormHelperText, FormLabel } from '@mui/material'
10
import { DateTimeField } from './DateTimeField'
11
import _ from 'lodash'
12
-import { Center, IconBtn, useBreakpoint } from './mui'
12
+import { Center, Flex, IconBtn, useBreakpoint } from './mui'
13
import { DataTable } from './DataTable'
14
15
type ArrayFieldProps<T> = FieldProps<T[]> & { fields: FieldDescriptor[], height?: number, reorder?: boolean, prepend?: boolean, autoRowHeight?: boolean }
@@ -25,8 +25,10 @@ export function ArrayField<T extends object>({ label, helperText, fields, value,
25
setApi?.({ isEqual: isOrderedEqual }) // don't rely on stringify, as it wouldn't work with non-json values
26
const [undo, setUndo] = useState<typeof value>()
27
return h(Fragment, {},
28
- label && h(FormLabel, { sx: { ml: 1 } }, label),
29
- helperText && h(FormHelperText, {}, helperText),
28
+ h(Flex, {},
29
+ label && h(FormLabel, { sx: { ml: 1 } }, label),
30
+ helperText && h(FormHelperText, {}, helperText),
31
+ ),
32
h(Box, { ...rest },
33
h(DataTable, {
34
rows,
@@ -102,7 +104,7 @@ export function ArrayField<T extends object>({ label, helperText, fields, value,
104
title,
105
onClick(ev: MouseEvent) {
106
ev.stopPropagation()
105
- formDialog<T>({ values: row as any, form, title }).then(x => {
107
+ formDialog<T>({ values: row as any, form, title: h(Fragment, {}, title, label && ' - ', label) }).then(x => {
108
if (x)
109
set(value!.map((oldRec, i) => i === $idx ? x : oldRec), ev)
110
})