import MuiDialog from "@/components/MuiDialog";
import { Button, Card, Checkbox, DialogActions, Grid, TextField, TextareaAutosize, Typography } from "@mui/material";
import { Paper } from "@mui/material";
import { Stack } from '@mui/material';
import React, { useEffect, useState } from 'react';
import { DetailRequestLogType } from "../Model/Types";
import { fDateTimesecond, toTitleCase } from "@/utils/formatTime";
import axios from "@/utils/axios";
import { enqueueSnackbar } from "notistack";
import { useNavigate } from "react-router";
import { RHFTextField } from "@/components/hook-form";
type DialogConfirmationType = {
openDialog: boolean;
setOpenDialog: any;
onSubmit?: void;
approve: string;
requestLog: DetailRequestLogType|undefined;
}
export default function DialogConfirmation({requestLog, setOpenDialog, openDialog, approve, onSubmit} : DialogConfirmationType ) {
const navigate = useNavigate();
const [formData, setFormData] = useState({
status: approve || '',
no_identitas: requestLog?.no_identitas,
keterangan: '',
hak_kamar_pasien: '',
penempatan_kamar: '',
});
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 handleSubmit = () => {
axios
.put(`customer-service/request/${requestLog?.id}`, formData)
.then((response) => {
enqueueSnackbar('Verification Request LOG Success', { variant: 'success' });
setOpenDialog(false);
navigate('/custormer-service/request')
})
.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 resetForm = () => {
setFormData({
status: approve,
no_identitas: requestLog?.no_identitas ?? '',
keterangan: '',
hak_kamar_pasien: '',
penempatan_kamar: '',
});
};
const handleCloseDialog = () => {
setOpenDialog(false);
resetForm();
}
const handleNumericInput = (input: any) => {
const numericInput = input.replace(/\D/g, '');
return numericInput;
};
const handleKeyPress = (e:any) => {
if (e.key === 'Enter' && !e.shiftKey) {
// Menghentikan default "Enter" (tidak membuat baris baru)
e.preventDefault();
// Menambahkan karakter baris baru
handleChange('keterangan', `${formData.keterangan}\n`);
}
};
const getContent = () => (
Are you sure to {approve == 'approved' ? 'approve' : 'deciline'} this request ?
Member ID
{requestLog?.member_id}
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}
No Identitas
handleChange('no_identitas', handleNumericInput(e.target.value))}
/>
Keterangan
handleChange('keterangan', e.target.value)}
onKeyDown={handleKeyPress}
style={{
width: '100%',
padding: '8px',
border: '1px solid #ced4da',
borderRadius: '4px',
fontSize: '14px',
}}
/>
Hak Kamar Pasien
handleChange('hak_kamar_pasien', e.target.value)}
/>
Penempatan Kamar
handleChange('penempatan_kamar', e.target.value)}
/>
{approve == 'approved' ? (
) : (
) }
);
return (
);
}