"use client"; import { Button, FormControl, FormHelperText, Grid, InputLabel, MenuItem, OutlinedInput, Select } from "@mui/material"; import LtrTextField from "@/core/components/LtrTextField"; import { Controller, useForm } from "react-hook-form"; import { yupResolver } from "@hookform/resolvers/yup"; import { object, string, number } from "yup"; import { GET_SYSTEM_MESSAGES_SUPERVISOR } from "@/core/utils/routes"; import StyledForm from "@/core/components/StyledForm"; import useRequest from "@/lib/hooks/useRequest"; import usePermissionsList from "@/lib/hooks/usePermissionsList"; import { useEffect } from "react"; const RateMessage = ({ messageId, initialValues, mutate }) => { const requestServer = useRequest({ notificationSuccess: true }); const defaultValues = { savaneh_id: initialValues?.savaneh_id ?? "", action_id: initialValues?.action_id ?? "", description: initialValues?.description ?? "", }; const validationSchema = object().shape({ savaneh_id: string().required("وضعیت کیفیت پیام را مشخص کنید"), action_id: string().optional(), description: string().optional(), }); const { control, handleSubmit, reset, formState: { isSubmitting, errors, isDirty, isValid }, } = useForm({ defaultValues, resolver: yupResolver(validationSchema) }); const onSubmit = async (data) => { const fixData = { savaneh_id: parseInt(data.savaneh_id), ...(data.action_id !== "" && { action_id: data.action_id }), ...(data.description !== "" && { description: data.description }), }; try { await requestServer(`${GET_SYSTEM_MESSAGES_SUPERVISOR}/${messageId}`, "post", { data: fixData, }); mutate(); reset({ savaneh_id: initialValues?.savaneh_id ?? "", action_id: initialValues?.action_id ?? "", description: initialValues?.description ?? "", }); } catch (error) {} }; useEffect(() => { reset({ savaneh_id: initialValues?.savaneh_id ?? "", action_id: initialValues?.action_id ?? "", description: initialValues?.description ?? "", }); }, [initialValues.savaneh_id, initialValues.action_id, initialValues.description]); return ( { return ( پیگیری ); }} name="savaneh_id" /> { return ( ); }} name="action_id" /> { return ( ); }} name="description" /> ); }; export default RateMessage;