import MuiDialog from "@/components/MuiDialog"; import { Autocomplete, Button, Card, DialogActions, Grid, TextField, Typography } from "@mui/material"; import { Stack } from '@mui/material'; import React, { useEffect, useState } from 'react'; import { DetailFinalLogType } from "../Model/Types"; import { fDateOnly, fDateTimesecond, toTitleCase } from "@/utils/formatTime"; import axios from "@/utils/axios"; import { enqueueSnackbar } from "notistack"; import { useNavigate } from "react-router"; type DialogConfirmationType = { openDialog: boolean; setOpenDialog: any; onSubmit?: void; approve: string; requestLog: DetailFinalLogType|undefined; } export default function DialogConfirmation({requestLog, setOpenDialog, openDialog, approve, onSubmit} : DialogConfirmationType ) { const navigate = useNavigate(); const [formData, setFormData] = useState({ discharge_date: requestLog?.discharge_date, id: requestLog?.id, status: approve || '', catatan: '', icdCodes: requestLog?.diagnosis.length ? requestLog.diagnosis.map(diagnosis => ({ value: diagnosis.value, label: diagnosis.label })) : [] }); const [icdOptions, setIcdOptions] = useState([ { value: '-', label: '-' } ]); const [searchIcd, setSearchIcd] = useState(''); useEffect(() => { // Update formData setiap kali approve berubah setFormData(prevData => ({ ...prevData, status: approve || '', })); }, [approve]); const handleChange = (field, value) => { setFormData((prevData) => ({ ...prevData, [field]: value, })); }; const handleApprove = () => { setFormData((prevData) => ({ ...prevData, status: approve, })); handleSubmit(); }; const handleSearch = (search) => { setSearchIcd(search); axios.get('diagnosis?search=' + search) .then((response) => { setIcdOptions(response.data.data); }) .catch((error) => { console.error('Error fetching ICD options:', error); }); } const handleSubmit = () => { axios .post(`customer-service/request/final-log`, formData) .then((response) => { enqueueSnackbar('Verification Request LOG Success', { variant: 'success' }); setOpenDialog(false); if (requestLog?.service_type === 'Inpatient') { navigate('/case_management/inpatient_monitoring'); } else { navigate('/custormer-service/final-log'); } }) .catch(({ response }) => { enqueueSnackbar(response.data.message ?? 'Something went wrong!', { variant: 'error' }); }); } const style1 = { color: '#919EAB', width: '30%' }; const style2 = { width: '70%' }; const marginBottom1 = { marginBottom: 1, }; const marginBottom2 = { marginBottom: 2, }; const handleCloseDialog = () => { setOpenDialog(false); }; const getContent = () => ( Are you sure to {approve === 'approved' ? 'approve' : 'decline'} this final log? Member ID {requestLog?.member_id} Member Of Type {requestLog?.type_of_member} Policy Number {requestLog?.policy_number} Name {requestLog?.name} Submission Date {requestLog?.submission_date ? fDateTimesecond(requestLog?.submission_date) : '-'} Claim Method {requestLog?.claim_method ? toTitleCase(requestLog?.claim_method) : '-'} Service Type {requestLog?.service_type} Discharge Date handleChange('discharge_date', e.target.value)} /> Catatan handleChange('catatan', e.target.value)} /> Diagnosis ICD - X option.label} fullWidth value={formData.icdCodes} onChange={(e, newValues) => handleChange('icdCodes', newValues)} inputValue={searchIcd} onInputChange={(e, newInputValue) => handleSearch(newInputValue)} renderInput={(params) => ( )} /> {approve === 'approved' ? ( ) : ( )} ); return ( ); }