import * as Yup from 'yup'; import { yupResolver } from '@hookform/resolvers/yup'; import { useEffect, useState } from 'react'; import { Box, Grid } from '@mui/material'; import { LoadingButton } from '@mui/lab'; import Button from '@mui/material/Button'; import { styled } from '@mui/material/styles'; import Dialog from '@mui/material/Dialog'; import DialogTitle from '@mui/material/DialogTitle'; import DialogContent from '@mui/material/DialogContent'; import DialogActions from '@mui/material/DialogActions'; import IconButton from '@mui/material/IconButton'; import CloseIcon from '@mui/icons-material/Close'; import Typography from '@mui/material/Typography'; import { useForm } from 'react-hook-form'; import { FormProvider } from '@/components/hook-form'; import RHFTextFieldMoney from '@/components/hook-form/v2/RHFTextFieldMoney'; /** * Custom Style * ===================================================== */ const BootstrapDialog = styled(Dialog)(({ theme }) => ({ })); /** * Utils, Types, Functions * ============================================ */ import palette from '@/theme/palette'; import { BenefitConfigurationListType } from '../Model/Types'; import { editBenefitConfiguration } from '../Model/Functions'; /** * Props * ===================================================== */ type Props = { data?: BenefitConfigurationListType, isOpen: boolean, handleCancleProp: () => void, handleSuccessProp: () => void, }; export default function BenefitConfigurationDialog({ ...props }: Props) { // setup form // ==================================== const defaultValues: BenefitConfigurationListType = { claim_service_benefits_id: 0, benefit_name: '', amount_incurred: 0, amount_approved: 0, amount_not_approved: 0, excess_paid: 0, }; const validationSchema = Yup.object().shape({ amount_incurred : Yup.string().typeError('').required(''), amount_approved : Yup.string().typeError('').required(''), amount_not_approved : Yup.string().typeError('').required(''), excess_paid : Yup.string().typeError('').required(''), }); const methods = useForm({ resolver: yupResolver(validationSchema), defaultValues }); const { handleSubmit, reset, watch, setValue, formState: { isDirty, isSubmitting, errors } } = methods; console.log(errors); console.log(watch()); // Submit Form // ===================================== const submitHandler = async (data: BenefitConfigurationListType) => { let response = await editBenefitConfiguration(data); if (response == true) { props.handleSuccessProp() props.handleCancleProp() } } // Set Value Form // ===================================== useEffect(() => { setValue('claim_service_benefits_id', props.data?.claim_service_benefits_id) setValue('amount_incurred', props.data?.amount_incurred) setValue('amount_approved', props.data?.amount_approved) setValue('amount_not_approved', props.data?.amount_not_approved) setValue('excess_paid', props.data?.excess_paid) }, [props.data]) return ( Client Benefit Configuration theme.palette.grey[0]}} > {/* Benefit Name */} {props.data?.benefit_name} Amount Incurred* Amount Approved* Amount Not Approved* Excess Paid* Save Changes ); }