@samitouri / QOSami-HFS / commits / f2b1c876

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 })