import React from 'react'; import { observer } from 'mobx-react'; import { SubmitHandler, useForm } from 'react-hook-form'; import { MdSave } from 'react-icons/md'; import { IUserContacts } from '@educt/interfaces'; import { Box, Heading, Stack } from '@chakra-ui/layout'; import { Text, Input, Button } from '@chakra-ui/react'; import { FormControl, FormHelperText } from '@chakra-ui/form-control'; import { yupResolver } from '@hookform/resolvers/yup'; import useUpdateUserContactsQuery from '@educt/hooks/useUpdateUserContactsQuery'; import UpdateUserContactsSchema from './UpdateUserContactsForm.validator'; type UpdateUserContactsInputType = { phone_number: string | null; twitter_id: string | null; telegram_id: string | null; vk_id: string | null; }; type UpdateUserContactsFormProps = { contacts: IUserContacts | null; }; const UpdateUserContactsForm: React.FC = ({ contacts }) => { const { register, formState: { errors, isDirty }, handleSubmit, reset, } = useForm({ resolver: yupResolver(UpdateUserContactsSchema), defaultValues: { phone_number: contacts && (contacts.phone_number ?? ''), twitter_id: contacts && (contacts.twitter_id?.replace(/^/, '@') ?? ''), telegram_id: contacts && (contacts.telegram_id?.replace(/^/, '@') ?? ''), vk_id: contacts && (contacts.vk_id ?? ''), }, }); const { updateContacts, loading } = useUpdateUserContactsQuery(); const onSubmit: SubmitHandler = data => { updateContacts(data).finally(() => reset({ phone_number: data.phone_number ?? '', twitter_id: data.twitter_id ?? '', telegram_id: data.telegram_id ?? '', vk_id: data.vk_id ?? '', }) ); }; return (
My Contacts Phone number with country code {errors.phone_number?.message} Twitter {errors.twitter_id?.message} Telegram {errors.telegram_id?.message} VKontakte {errors.vk_id?.message}
); }; export default observer(UpdateUserContactsForm);