import { Form, message } from 'antd' import { useForm } from 'antd/lib/form/Form' import React from 'react' import { useTranslation } from 'react-i18next' import { FormPublicDesignFragment, FormPublicFieldFragment, } from '../../../../graphql/fragment/form.public.fragment' import { StyledButton } from '../../../styled/button' import { StyledH1 } from '../../../styled/h1' import { StyledMarkdown } from '../../../styled/markdown' import { useRouter } from '../../../use.router' import { fieldTypes } from '../../types' interface Props { focus: boolean field: FormPublicFieldFragment design: FormPublicDesignFragment // eslint-disable-next-line @typescript-eslint/no-explicit-any save: (data: any) => void next: () => void prev: () => void } export const Field: React.FC = ({ field, save, design, next, prev, ...props }) => { const [form] = useForm() const router = useRouter() const { t } = useTranslation() const FieldInput = (fieldTypes[field.type] || fieldTypes[field.type]).inputFormField() const finish = (data) => { console.log('received field data', data) save(data) next() } const error = async () => { await message.error('Check inputs!') } const getUrlDefault = (): string => { if (router.query[field.id]) { return router.query[field.id] as string } if (router.query[field.slug]) { return router.query[field.slug] as string } return undefined } return (
{field.title} {field.description && ( {field.description} )}
{t('form:previous')}
{t('form:next')}
) }