// @mui import { Box, Button, Card, Collapse, IconButton, MenuItem, Table, TableBody, TableCell, TableRow, TextField, Typography, Stack, Menu, ButtonGroup, Tooltip, TableHead, } from '@mui/material'; import FindInPageOutlinedIcon from '@mui/icons-material/FindInPageOutlined'; import AssessmentIcon from '@mui/icons-material/Assessment'; // hooks import React, { ChangeEvent, useEffect, useRef, useState } from 'react'; import { Link, Navigate, useNavigate, useSearchParams } from 'react-router-dom'; // components import axios from '../../utils/axios'; import { LaravelPaginatedData, LaravelPaginatedDataDefault } from '../../@types/paginated-data'; import DataTable from '../../components/LaravelTable'; import { fCurrency } from '../../utils/formatNumber'; import EditRoundedIcon from '@mui/icons-material/EditRounded'; import { Chip } from '@mui/material'; import Iconify from '@/components/Iconify'; import { enqueueSnackbar } from 'notistack'; import { fDate } from '../../utils/formatTime'; import { Claims } from '@/@types/claims'; import Label from '@/components/Label'; import { capitalizeFirstLetter } from '@/utils/formatString'; import TableMoreMenu from '@/components/table/TableMoreMenu'; import Edit from '@mui/icons-material/Edit'; import { Download } from '@mui/icons-material'; export default function List() { const [searchParams, setSearchParams] = useSearchParams(); const [importResult, setImportResult] = useState(null); const navigate = useNavigate(); function SearchInput(props: any) { // SEARCH const searchInput = useRef(null); const [searchText, setSearchText] = useState(''); const handleSearchChange = (event: any) => { const newSearchText = event.target.value ?? ''; setSearchText(newSearchText); }; const handleSearchSubmit = (event: any) => { event.preventDefault(); props.onSearch({ search: searchText }); // Trigger to Parent }; const handleGetData = (type :string) => { axios.get(`claims/1/data-claim`) .then((response) => { const link = document.createElement('a'); link.href = response.data.data.file_url; link.setAttribute('download', response.data.data.file_name); document.body.appendChild(link); link.click(); }) } useEffect(() => { // Trigger First Search setSearchText(searchParams.get('search') ?? ''); }, []); return (
); } function ImportForm(props: any) { // IMPORT // Create Button Menu const [anchorEl, setAnchorEl] = React.useState(null); return (
{/* */}
); } // Dummy Default Data const [dataTableIsLoading, setDataTableLoading] = useState(true); const [dataTableData, setDataTableData] = useState( LaravelPaginatedDataDefault ); const loadDataTableData = async (appliedFilter: any | null = null) => { setDataTableLoading(true); const filter = appliedFilter ? appliedFilter : Object.fromEntries([...searchParams.entries()]); const response = await axios.get('/claims', { params: filter }); // console.log(response.data); setDataTableLoading(false); setDataTableData(response.data); }; const applyFilter = async (searchFilter: { search: string }) => { await loadDataTableData(searchFilter); setSearchParams(searchFilter); }; const handlePageChange = (event: ChangeEvent, value: number): void => { const filter = Object.fromEntries([...searchParams.entries(), ['page', value]]); loadDataTableData(filter); setSearchParams(filter); }; useEffect(() => { loadDataTableData(); }, []); const headStyle = { fontWeight: 'bold', }; // Called on every row to map the data to the columns function createData(data: Claims): Claims { return { ...data, }; } { /* ------------------ TABLE ROW ------------------ */ } function Row(props: { row: ReturnType }) { const { row } = props; const [open, setOpen] = React.useState(false); return ( *': { borderBottom: 'unset' } }}> {/* setOpen(!open)}> {open ? : } */} {row.claim_request?.code} {/* {row.code} */} {row.member?.current_plan?.code} {row.member?.current_corporate?.payor_id} {row.member?.current_corporate?.code} {row.member?.current_corporate?.current_policy?.code} {row.member?.member_id} {row.benefit ? row.benefit?.description : '-'} {row.status == 'draft' && ()} {row.status == 'requested' && ()} {row.status == 'received' && ()} {row.status == 'approved' && ()} {row.status == 'postpone' && ()} {row.status == 'paid' && ()} {row.status == 'declined' && ()} navigate(`/claims/edit/${row.id}`) }> Edit setOpen(!open) }> Detail } /> {/* COLLAPSIBLE ROW */} {/* Description : {row.description} */} ); } { /* ------------------ END TABLE ROW ------------------ */ } function TableContent() { return ( {/* ------------------ TABLE HEADER ------------------ */} {/* */} Code Plan ID Payor ID Corporate ID Policy Number Member ID Benefit Desc Status {/* ------------------ END TABLE HEADER ------------------ */} {/* ------------------ TABLE ROW ------------------ */} {dataTableIsLoading ? ( Loading ) : dataTableData.data.length === 0 ? ( No Data ) : ( {dataTableData.data.map((row) => ( ))} )} {/* ------------------ END TABLE ROW ------------------ */}
); } return ( } /> ); }