import { styled } from '@mui/material/styles'; import Iconify from '@/components/Iconify'; import { fCurrency } from '@/utils/formatNumber'; import { LoadingButton } from '@mui/lab'; import { Avatar, Button, Divider, LinearProgress, linearProgressClasses, ButtonBase, Box } from '@mui/material'; import { Card } from '@mui/material'; import { Stack, Typography } from '@mui/material'; import { fPostFormat } from '@/utils/formatTime'; import axios from '@/utils/axios'; import { enqueueSnackbar } from 'notistack'; import { useRef, useState, useContext } from 'react'; import { makeFormData } from '@/utils/jsonToFormData'; import { format } from 'date-fns'; import { LanguageContext } from '@/contexts/LanguageContext'; import { DatePicker, LocalizationProvider, MobileDatePicker } from '@mui/x-date-pickers'; import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns'; import TextField from '@mui/material/TextField'; export default function DialogFinalLog({ member, getData, onClose, handleSubmitSuccess }: any) { const { localeData }: any = useContext(LanguageContext); //Submission date const [dischargeDate, setDischargeDate] = useState(format(new Date(), "yyyy MMM d HH:mm:ss")); // ---------------------------------------------------------------------- // Files Diagnosa const fileDiagnosaInput = useRef(null); const [fileDiagnosas, setFileDiagnosas] = useState([]); const handleDiagnosaInputChange = (event:any) => { if (event.target.files[0]) { setFileDiagnosas([...fileDiagnosas, ...event.target.files]); } else { console.log('NO FILE'); } }; const removeDiagnosaFiles = (filesState:any, index:any) => { setFileDiagnosas( filesState.filter((file:any, fileIndex:any) => { return fileIndex != index; }) ); }; // ---------------------------------------------------------------------- // Files Result Kondisi const fileKondisiInput = useRef(null); const [fileKondisis, setFileKondisis] = useState([]); const handleKondisiInputChange = (event:any) => { if (event.target.files[0]) { setFileKondisis([...fileKondisis, ...event.target.files]); } else { console.log('NO FILE'); } }; const removeKondisiFiles = (filesState:any, index:any) => { setFileKondisis( filesState.filter((file:any, fileIndex:any) => { return fileIndex != index; }) ); }; // ---------------------------------------------------------------------- // Files Result Hasil Penunjang const fileHasilPenunjangInput = useRef(null); const [fileHasilPenunjangs, setFileHasilPenunjangs] = useState([]); const handleResultInputChange = (event:any) => { if (event.target.files[0]) { setFileHasilPenunjangs([...fileHasilPenunjangs, ...event.target.files]); } else { console.log('NO FILE'); } }; const removeFiles = (filesState:any, index:any) => { setFileHasilPenunjangs( filesState.filter((file:any, fileIndex:any) => { return fileIndex != index; }) ); }; // -------------------------------------------------------------- // Submit Form const [submitLoading, setSubmitLoading] = useState(false); function submitRequestFinalLog() { if(dischargeDate == '') { enqueueSnackbar(localeData.txtWarningDischargeDate, { variant: 'warning' }); return false; } setSubmitLoading(true); const formData = makeFormData({ request_logs_id: member.id, result_files: fileHasilPenunjangs, diagnosa_files: fileDiagnosas, kondisi_files: fileKondisis, discharge_date: fPostFormat(dischargeDate, 'yyyy-MM-dd HH:mm:ss'), }); axios .post('/request-final-log', formData) .then((response) => { enqueueSnackbar(response.data.meta.message ?? 'Berhasil membuat data', { variant: 'success' }); handleSubmitSuccess(); onClose({ someData: 'example data' }, getData); }) .catch(({ response }) => { enqueueSnackbar(response.data.meta.message ?? 'Something Went Wrong', { variant: 'error' }); }) .then(() => { setSubmitLoading(false); }); } return ( {localeData.txtDialogMember5} {format(member?.submission_date ? new Date(member.submission_date) : new Date(), "d MMM yyyy")} {member?.full_name ?? ''} {member?.no_polis ?? ''} } spacing={4} sx={{ marginY: 2, marginBottom: 6 }} > {/* -------------------------------Upload Dokumen Kondisi------------------------------- */} {localeData.txtConditionDocument} {/* Hasil Lab, */} } spacing={1} sx={{ marginY: 2 }} > {fileKondisis && fileKondisis.map((file:any, index:any) => ( {file.name} { removeKondisiFiles(fileKondisis, index); }} > ))} fileKondisiInput.current?.click()}> {localeData.txtAddResult} {/* -------------------------------Upload Dokumen Diagnosa------------------------------- */} {localeData.txtDiagnosisDokument} {/* Hasil Lab, */} } spacing={1} sx={{ marginY: 2 }} > {fileDiagnosas && fileDiagnosas.map((file:any, index:any) => ( {file.name} { removeDiagnosaFiles(fileDiagnosas, index); }} > ))} {/* Nama File .pdf */} {/* { JSON.stringify(filesResult) } */} fileDiagnosaInput.current?.click()}> {localeData.txtAddResult} {/* -------------------------------Upload Dokumen Hasil Penunjang------------------------------- */} {localeData.txtSupportingResultDocument} {/* Hasil Lab, */} } spacing={1} sx={{ marginY: 2 }} > {fileHasilPenunjangs && fileHasilPenunjangs.map((file:any, index:any) => ( {file.name} { removeFiles(fileHasilPenunjangs, index); }} > ))} {/* Nama File .pdf */} {/* { JSON.stringify(filesResult) } */} fileHasilPenunjangInput.current?.click()}> {localeData.txtAddResult} {localeData.txtDischargeDate} * { setDischargeDate( (newValue)); }} inputFormat="dd-MM-yyyy HH:mm" renderInput={(params) => } /> { submitRequestFinalLog(); }} loading={submitLoading} > Request Final LOG ); }