import {useMutation, useQuery} from '@apollo/react-hooks' import {Button, Form, Input, message, Select} from 'antd' import {useForm} from 'antd/lib/form/Form' import {NextPage} from 'next' import {useRouter} from 'next/router' import React, {useState} from 'react' import {useTranslation} from 'react-i18next' import {cleanInput} from '../../components/clean.input' import Structure from '../../components/structure' import { ADMIN_PROFILE_UPDATE_MUTATION, AdminProfileUpdateMutationData, AdminProfileUpdateMutationVariables } from '../../graphql/mutation/admin.profile.update.mutation' import { ADMIN_PROFILE_QUERY, AdminProfileQueryData, AdminProfileQueryVariables } from '../../graphql/query/admin.profile.query' import {AdminUserQueryData} from '../../graphql/query/admin.user.query' import {languages} from '../../i18n' const Profile: NextPage = () => { const { t } = useTranslation() const router = useRouter() const [form] = useForm() const [saving, setSaving] = useState(false) const {data, loading, error} = useQuery(ADMIN_PROFILE_QUERY, { onCompleted: next => { form.setFieldsValue(next) }, }) const [update] = useMutation(ADMIN_PROFILE_UPDATE_MUTATION) const save = async (formData: AdminUserQueryData) => { setSaving(true) try { const next = (await update({ variables: cleanInput(formData), })).data form.setFieldsValue(next) message.success(t('profile:updated')) } catch (e) { console.error('failed to save', e) message.error(t('profile:updateError')) } setSaving(false) } return ( {t('profile:updateNow')}, ]} >
{ // TODO process errors message.error(t('validation:mandatoryFieldsMissing')) }} labelCol={{ xs: { span: 24 }, sm: { span: 6 }, }} wrapperCol={{ xs: { span: 24 }, sm: { span: 18 }, }} >
) } export default Profile