import { Field, Form, Formik, FormikHelpers } from 'formik'; import { object, string } from 'yup'; import FormikFieldWrapper from '@/components/elements/FormikFieldWrapper'; import SpinnerOverlay from '@/components/elements/SpinnerOverlay'; import tw from 'twin.macro'; import Button from '@/components/elements/Button'; import Input, { Textarea } from '@/components/elements/Input'; import styled from 'styled-components'; import { useFlashKey } from '@/plugins/useFlash'; import { createSSHKey, useSSHKeys } from '@/api/account/ssh-keys'; interface Values { name: string; publicKey: string; } const CustomTextarea = styled(Textarea)` ${tw`h-32`} `; export default () => { const { clearAndAddHttpError } = useFlashKey('account'); const { mutate } = useSSHKeys(); const submit = (values: Values, { setSubmitting, resetForm }: FormikHelpers) => { clearAndAddHttpError(); createSSHKey(values.name, values.publicKey) .then(key => { resetForm(); mutate(data => (data || []).concat(key)); }) .catch(error => clearAndAddHttpError(error)) .then(() => setSubmitting(false)); }; return ( <> {({ isSubmitting }) => (
)}
); };