import { User } from "@medusajs/medusa" import { useAdminGetSession, useAdminUpdateUser } from "medusa-react" import { useEffect } from "react" import { useForm } from "react-hook-form" import { useTranslation } from "react-i18next" import Button from "../../../../components/fundamentals/button" import InputField from "../../../../components/molecules/input" import Modal from "../../../../components/molecules/modal" import useNotification from "../../../../hooks/use-notification" type Props = { user: Omit open: boolean onClose: () => void } type EditInformationFormType = { first_name: string | null last_name: string | null } const EditUserInformationModal = ({ user, open, onClose }: Props) => { const { mutate, isLoading: isSubmitting } = useAdminUpdateUser(user.id) const { refetch } = useAdminGetSession() const { t } = useTranslation() const { register, handleSubmit, formState: { errors }, reset, } = useForm({ defaultValues: getDefaultValues(user), }) useEffect(() => { reset(getDefaultValues(user)) }, [open, user]) const notification = useNotification() const onSubmit = handleSubmit((data) => { mutate( // @ts-ignore data, { onSuccess: () => { notification( t("edit-user-information-success", "Success"), t( "edit-user-information-your-information-was-successfully-updated", "Your information was successfully updated" ), "success" ) refetch() onClose() }, onError: () => {}, } ) }) return (

{t("edit-user-information-edit-information", "Edit information")}

) } const getDefaultValues = (user: Omit) => { return { first_name: user.first_name, last_name: user.last_name, } } export default EditUserInformationModal