// mui import { styled } from '@mui/material/styles'; import { LoadingButton, TabPanel } from "@mui/lab"; import { Button, Card, Divider, Grid, LinearProgress, linearProgressClasses, Typography, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Collapse, } from "@mui/material"; import { Tab, Tabs } from "@mui/material"; import { Box, Stack } from "@mui/material"; import React, { useEffect, useState, useContext } from "react"; import { fCurrency } from '@/utils/formatNumber'; import { fPostFormat } from '@/utils/formatTime'; import { Avatar } from '@mui/material'; import Iconify from '@/components/Iconify'; import FormRequestClaim from './FormRequestClaim'; import FormRequestLog from './FormRequestLog'; import { LanguageContext } from '@/contexts/LanguageContext'; import { format } from 'date-fns'; import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'; import KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight'; export default function DialogMember(member:any, handleSubmitSuccess:() => void) { const { localeData }: any = useContext(LanguageContext); const [currentTab, setCurrentTab] = useState('request'); // ---------------------------------------------------------------------- useEffect(() => { setCurrentTab('detail') }, [member]) function handleChangeTab(event: React.SyntheticEvent, newValue: string) { setCurrentTab(newValue) } // ---------------------------------------------------------------------- const BorderLinearProgress = styled(LinearProgress)(({ theme }) => ({ height: 10, borderRadius: 6, [`&.${linearProgressClasses.colorPrimary}`]: { backgroundColor: theme.palette.grey[theme.palette.mode === 'light' ? 300 : 800], }, [`& .${linearProgressClasses.bar}`]: { borderRadius: 6, background: 'linear-gradient(270deg, #19BBBB 38.42%, #FF9565 76.21%, #FE7253 104.02%)', }, })); function TabPanel(props:any) { const { children, value, index, ...other } = props; return ( ); } const [openRows, setOpenRows] = useState({}); const handleRowToggle = (index:number) => { setOpenRows((prevOpenRows:any) => ({ ...prevOpenRows, [index]: !prevOpenRows[index], })); }; return (
{member?.type !== 'view' ? ( ) : ''} Member ID { member?.members.member_id ?? '-'} Policy Number { member?.members.policy_id ?? '-'} NRIC {member?.members.nik ?? '-'} NIK {member?.members.nik ?? '-'} Email {member?.members.email ?? '-'} {localeData.txtDateBirth} {member?.members.birth_date ? format(new Date(member.members.birth_date), "d MMM yyyy") : '-'} {localeData.txtGender} {member?.members.gender ?? '-'} {localeData.txtMaritalStatus} {member?.members.marital_status ?? '-'} {localeData.txtLanguage} {member?.members.language ?? '-'} Race {member?.members.race ?? '-'} {localeData.txtRelationship} {member?.members.relation_with_principal != '' ? member?.members.relation_with_principal : '-'} {member && member.groupServices && Object.keys(member.groupServices).map((serviceCode, index) => ( {serviceCode} {openRows[index] ? ( handleRowToggle(index)} /> ) : ( handleRowToggle(index)} /> )} {/* COLLAPSIBLE ROW */} {/* Loop through the array for the current serviceCode */} {member.groupServices[serviceCode].map((item:any, innerIndex:number) => ( {item.description} {item.code} ))} ))}
) }