Files
aso/frontend/dashboard/src/pages/Claims/components/DialogHistoryPerawatan.tsx
Server D3 Linksehat 1bf608b1ed Server 103 Commit
2024-07-18 16:05:33 +07:00

85 lines
3.0 KiB
TypeScript
Executable File

import MuiDialog from '@/components/MuiDialog';
import axios from '@/utils/axios';
import { Button, Checkbox, Typography } from '@mui/material';
import { Paper } from '@mui/material';
import { Stack } from '@mui/material';
import { enqueueSnackbar } from 'notistack';
import React, { useState } from 'react';
import FormHistoryPerawatan from './FormHistoryPerawatan';
import { useDispatch } from 'react-redux';
import { claimsHistoryAction } from '@/store/claimsHistorySlice';
type DialogHistoryPerawatanType = {
openDialog: boolean;
setOpenDialog: React.Dispatch;
onSubmit?: void;
claim: any; // TODO create ClaimType
encounter?: any;
}
export default function DialogHistoryPerawatan({ openDialog, setOpenDialog, onSubmit, claim, encounter } : DialogHistoryPerawatanType) {
const isEdit = encounter?.id != null
const dispatch = useDispatch()
// const benefits = member?.current_plan?.benefits ?? [];
// const [selectedBenefits, setSelectedBenefits] = useState([]);
// const toggleBenefit = (benefit) => {
// if (selectedBenefits.includes(benefit)) {
// console.log('removing', benefit)
// setSelectedBenefits(selectedBenefits.filter((throughBenefit) => benefit.id != throughBenefit.id))
// } else {
// console.log('adding', benefit)
// setSelectedBenefits([...selectedBenefits, benefit])
// }
// }
const handleSubmit = (data) => {
if (!isEdit) {
axios.post(`claims/${claim.id}/encounters`, data)
.then((res) => {
enqueueSnackbar(res.data.message, {variant: 'success'})
setOpenDialog(false);
window.location.reload(); // tolong benerin ya
// axios.get(`claims/${claim.id}`).then((res) => {
// dispatch(claimsHistoryAction.setClaims(res.data.data.encounter))
// })
})
.catch((err) => {
enqueueSnackbar(err.message, {variant: 'error'})
})
} else {
axios.post(`claims/${claim.id}/encounters/${data.id}/update`, data)
.then((res) => {
enqueueSnackbar(res.data.message, {variant: 'success'})
setOpenDialog(false);
window.location.reload(); // tolong benerin ya
// axios.get(`claims/${claim.id}`).then((res) => {
// dispatch(claimsHistoryAction.setClaims(res.data.data.encounter))
// })
})
.catch((err) => {
enqueueSnackbar(err.message, {variant: 'error'})
})
}
};
const getContent = () => (
<Stack spacing={1} marginTop={2}>
<FormHistoryPerawatan claim={claim} onSubmit={handleSubmit} encounter={encounter}></FormHistoryPerawatan>
</Stack>
);
return (
<MuiDialog
title={{ name: !isEdit ? 'Tambah History Perawatan' : 'Edit History Perawatan' }}
openDialog={openDialog}
setOpenDialog={setOpenDialog}
content={getContent()}
maxWidth="xl"
/>
);
}