"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 = { message_quality: initialValues?.message_quality ?? "", format_quality: initialValues?.format_quality ?? "", description: initialValues?.description ?? "", }; const validationSchema = object().shape({ message_quality: string().required("وضعیت کیفیت پیام را مشخص کنید"), format_quality: string().required("وضعیت فرمت پیام را مشخص کنید"), description: string().optional(), }); const { control, handleSubmit, reset, formState: { isSubmitting, errors, isDirty, isValid }, } = useForm({ defaultValues, resolver: yupResolver(validationSchema) }); const onSubmit = async (data) => { const fixData = { message_quality: parseInt(data.message_quality), format_quality: parseInt(data.format_quality), ...(data.description !== "" && { description: data.description }), }; try { await requestServer(`${GET_SYSTEM_MESSAGES_SUPERVISOR}/${messageId}`, "post", { data: fixData, }); mutate(); reset({ message_quality: initialValues?.message_quality ?? "", format_quality: initialValues?.format_quality ?? "", description: initialValues?.description ?? "", }); } catch (error) {} }; useEffect(() => { reset({ message_quality: initialValues?.message_quality ?? "", format_quality: initialValues?.format_quality ?? "", description: initialValues?.description ?? "", }); }, [initialValues.message_quality, initialValues.format_quality, initialValues.description]); return ( { return ( کیفیت پیام ); }} name="message_quality" /> { return ( فرمت پیام ); }} name="format_quality" /> { return ( ); }} name="description" /> ); }; export default RateMessage;