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 ( ); }