import { Button, FormControl, FormErrorMessage, FormLabel, Input, Modal, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalOverlay, Stack, useToast, } from "@chakra-ui/react"; import { Field, Form, Formik } from "formik"; import { PrettyButton } from "src/components"; import { useSetUser, useUser } from "src/hooks"; import { intl } from "src/locale"; import { validateEmail, validateString } from "src/modules/Validations"; interface ProfileModalProps { isOpen: boolean; onClose: () => void; } function ProfileModal({ isOpen, onClose }: ProfileModalProps) { const toast = useToast(); const user = useUser("me"); const { mutate: setUser } = useSetUser(); const onSubmit = (payload: any, { setSubmitting }: any) => { payload.id = "me"; const showErr = (msg: string) => { toast({ description: intl.formatMessage({ id: `error.${msg}`, }), status: "error", position: "top", duration: 3000, isClosable: true, }); }; setUser(payload, { onError: (err: any) => showErr(err.message), onSuccess: () => onClose(), onSettled: () => setSubmitting(false), }); }; return ( {({ isSubmitting, values }: any) => (
{intl.formatMessage({ id: "profile.title" })} {({ field, form }: any) => ( {intl.formatMessage({ id: "user.name" })} {form.errors.name} )} {({ field, form }: any) => ( {intl.formatMessage({ id: "user.email" })} {form.errors.email} )} {intl.formatMessage({ id: "form.save" })} )}
); } export { ProfileModal };