import { FC, useEffect, useState } from 'react' import Button from '../../../components/Button' import { Edit, TickCircle } from 'iconsax-react' import { useTranslation } from 'react-i18next' import DefaulModal from '../../../components/DefaulModal' import Input from '../../../components/Input' import { useFormik } from 'formik' import { CreateItemPlanType, UpdatePlanType } from '../types/ServiceTypes' import * as Yup from 'yup' import { clx } from '../../../helpers/utils' import { toast } from 'react-toastify' import { useGetPlanDetail, useUpdatePlan } from '../hooks/useServiceData' import { useParams } from 'react-router-dom' import { ErrorType } from '../../../helpers/types' type Props = { id: string, } const EditPlan: FC = (props: Props) => { const { id } = useParams() const { t } = useTranslation('global') const [showModal, setShowModal] = useState(false) const getPlanDetail = useGetPlanDetail(showModal ? props.id : undefined) const updatePlan = useUpdatePlan(props.id) const formik = useFormik({ initialValues: { name: '', duration: '', isActive: true, price: '' }, validationSchema: Yup.object({ name: Yup.string() .required(t('errors.required')), duration: Yup.string() .required(t('errors.required')), price: Yup.string() .required(t('errors.required')), }), onSubmit: (values) => { const params: UpdatePlanType = { serviceId: id, duration: +values.duration, price: +values.price, name: values.name, } updatePlan.mutate(params, { onSuccess: () => { toast.success(t('success')) setShowModal(false) }, onError: (error: ErrorType) => { toast.error(error.response?.data?.error?.message[0]) } }) } }) useEffect(() => { if (getPlanDetail.data) { formik.setValues({ name: getPlanDetail.data.data?.subscription.name, duration: getPlanDetail.data.data?.subscription.duration + '', price: getPlanDetail.data.data?.subscription.price + '', isActive: getPlanDetail.data.data?.subscription.isActive }) } // eslint-disable-next-line react-hooks/exhaustive-deps }, [getPlanDetail.data]) return (
setShowModal(true)} size={20} color='#0047FF' /> setShowModal(false)} title_header={t('plan.edit_plan')} isHeader >
) } export default EditPlan