import {useTranslations} from "next-intl"; import {useState} from "react"; import { Button, Dialog, DialogActions, DialogContent, DialogTitle, FormControl, FormHelperText, IconButton, InputLabel, MenuItem, Select, Stack, TextField, Tooltip } from "@mui/material"; import {useFormik} from "formik"; import ChangeCircleIcon from '@mui/icons-material/ChangeCircle'; import {UPDATE_LOAN_MANAGEMENT_REFAHI} from "@/core/data/apiRoutes"; import useRequest from "@/lib/app/hooks/useRequest"; import useNotification from "@/lib/app/hooks/useNotification"; import * as Yup from "yup"; import useLoanStateRefahi from "@/lib/prefetchDataTable/hooks/useLoanStateRefahi"; const Update = ({rowId, fetchUrl, mutate}) => { const t = useTranslations(); const {loan_state_refahi} = useLoanStateRefahi() const [openConfirmDialog, setOpenConfirmDialog] = useState(false); const requestServer = useRequest({auth: true}) const {update_notification} = useNotification() const validationSchema = Yup.object().shape({ description: Yup.string().required(t("UpdateDialog.description_error")), next_state_id: Yup.number().required(t("UpdateDialog.next-state-id-error")) }); const formik = useFormik({ initialValues: { description: "", next_state_id: "" }, validationSchema, onSubmit: (values, {setSubmitting}) => { const formData = new FormData(); formData.append("description", values.description); formData.append("next_state_id", values.next_state_id); requestServer(`${UPDATE_LOAN_MANAGEMENT_REFAHI}/${rowId}`, 'post', { data: formData, }).then((response) => { mutate(fetchUrl) update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); }); }, }); const handleDescriptionChange = (event) => { formik.setFieldValue("description", event.target.value) }; const handleNextStateIDChange = (event) => { formik.setFieldValue("next_state_id", event.target.value) }; return ( <> { setOpenConfirmDialog(true) }} > {t("UpdateDialog.update")} {t("UpdateDialog.next-state-id")} {formik.touched.next_state_id && formik.errors.next_state_id} ); }; export default Update;