diff options
Diffstat (limited to 'src/app/(main)/teams/TeamAddForm.tsx')
| -rw-r--r-- | src/app/(main)/teams/TeamAddForm.tsx | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/app/(main)/teams/TeamAddForm.tsx b/src/app/(main)/teams/TeamAddForm.tsx new file mode 100644 index 0000000..c95259f --- /dev/null +++ b/src/app/(main)/teams/TeamAddForm.tsx @@ -0,0 +1,39 @@ +import { + Button, + Form, + FormButtons, + FormField, + FormSubmitButton, + TextField, +} from '@umami/react-zen'; +import { useMessages, useUpdateQuery } from '@/components/hooks'; + +export function TeamAddForm({ onSave, onClose }: { onSave: () => void; onClose: () => void }) { + const { formatMessage, labels, getErrorMessage } = useMessages(); + const { mutateAsync, error, isPending } = useUpdateQuery('/teams'); + + const handleSubmit = async (data: any) => { + await mutateAsync(data, { + onSuccess: async () => { + onSave?.(); + onClose?.(); + }, + }); + }; + + return ( + <Form onSubmit={handleSubmit} error={getErrorMessage(error)}> + <FormField name="name" label={formatMessage(labels.name)}> + <TextField autoComplete="off" /> + </FormField> + <FormButtons> + <Button isDisabled={isPending} onPress={onClose}> + {formatMessage(labels.cancel)} + </Button> + <FormSubmitButton variant="primary" isDisabled={isPending}> + {formatMessage(labels.save)} + </FormSubmitButton> + </FormButtons> + </Form> + ); +} |