import React from "react"; import Modal from "components/containers/modal/Modal"; import InputField from "components/controls/InputField"; import { useUserStore } from "../data/userSlice"; import classNames from "classnames"; import { useTranslation } from "react-i18next"; import { Formik } from "formik"; import * as Yup from "yup"; import { useUserViewModel } from "user/controller/userViewModel"; import { User } from "user/domain/userEntity"; type Props = { isShown: boolean; onClose: VoidFunction; }; type FormValues = Pick; type FormValuesValidation = { [Prop in keyof FormValues]: any; }; export default function PersonalInfomrationEditor({ isShown, onClose: extOnClose, }: Props) { const { t } = useTranslation(); const store = useUserStore(); const { user, updatePersonalInfo } = useUserViewModel(store); const onClose = React.useCallback(() => { extOnClose(); }, [extOnClose]); return ( {t("account.info")} ({ username: Yup.string() .min(2, "min 2 characters") .max(50, "50 characters max") .notRequired(), firstname: Yup.string() .min(2, "min 2 characters") .max(50, "50 characters max") .required("required field"), lastname: Yup.string() .min(2, "min 2 characters") .max(50, "50 characters max") .required("required field"), })} onSubmit={(values, actions) => { updatePersonalInfo(values)?.then(() => { onClose(); }); }} > {(formik) => (
)}
); }