simpler api for Form.set

Massimo Melina committed Mar 16, 2022 at 14:02 UTC 5defe4f92ee1201a4235d6ca6c306abb0f5473c9
8 files changed +12 -9
admin/src/AccountsPage.ts
+1 -1
@@ -164,7 +164,7 @@ function AccountForm({ account, done, groups }: { account: Account, groups: stri
164 return h(Form, {
165 formRef: ref,
166 values,
167 - set(v, { k }) {
167 + set(v, k) {
168 setValues({ ...values, [k]: v })
169 },
170 barSx: { width: 'initial', justifyContent: 'space-between' },
admin/src/ConfigPage.ts
+1 -1
@@ -33,7 +33,7 @@ export default function ConfigPage() {
33 return h(Form, {
34 sx: { maxWidth: '60em' },
35 values: config,
36 - set(v, { k }) {
36 + set(v, k) {
37 if (v || config[k])
38 state.config[k] = v
39 },
admin/src/FileCard.ts
+1 -1
@@ -58,7 +58,7 @@ function FileForm({ file }: { file: ReturnType<typeof useSnapState>['selectedFil
58
59 return h(Form, {
60 values,
61 - set(v, { k }) {
61 + set(v, k) {
62 setValues({ ...values, [k]: v })
63 },
64 save: {
admin/src/Form.ts
+2 -2
@@ -32,7 +32,7 @@ interface FormProps {
32 fields: (FieldDescriptor | ReactElement | null | undefined | false)[]
33 defaults?: (f:FieldDescriptor) => Dict | any
34 values: Dict
35 - set: (v: any, field: FieldDescriptor) => void
35 + set: (v: any, fieldK: string) => void
36 save?: Partial<Parameters<typeof Button>[0]>
37 stickyBar?: boolean
38 addToBar?: ReactNode[]
@@ -103,7 +103,7 @@ export function Form({ fields, values, set, defaults, save, stickyBar, addToBar=
103 onChange(v:any) {
104 if (onChange)
105 v = onChange(v)
106 - set(v, field)
106 + set(v, field.k)
107 },
108 }
109 if (error)
admin/src/LoginRequired.ts
+1 -1
@@ -19,7 +19,7 @@ function LoginForm() {
19 return h(Center, {},
20 h(Form, {
21 values: {},
22 - set(v, { k }) {
22 + set(v, k) {
23 setValues({ ...values, [k]: v })
24 },
25 fields: [
admin/src/dialog.ts
+1 -1
@@ -98,7 +98,7 @@ export async function formDialog(props: FormProps) : Promise<FormProps['values']
98 return h(Form, {
99 ...props,
100 values,
101 - set(v, { k }) {
101 + set(v, k) {
102 setValues({ ...values, [k]: v })
103 },
104 save: {
admin/src/theme.ts
+3 -2
@@ -18,10 +18,11 @@ export function useMyTheme() {
18 },
19 MuiButton: lightMode || {
20 styleOverrides: {
21 - root: ({ ownerState }: { ownerState:any }) =>
22 - ownerState.color === 'primary' && {
21 + root({ ownerState }) {
22 + return ownerState.color === 'primary' && {
23 color: ownerState.variant === 'contained' ? '#ddd' : '#68c'
24 }
25 + }
26 }
27 }
28 }
todo.md
+2
@@ -1,4 +1,6 @@
1 # To do
2 +- admin/logs
3 +- admin/config: hide advanced settings
4 - admin/fs: support insert/delete key
5 - if specified config is a folder, check for file config.yaml inside
6 - merge accounts in config