// // components/admin/tabs/AccountsTab.js // import Link from "next/link"; // export default function AppealsWithStatusTab({ statusObj }) { // return ( //
//

User Accounts

//
//
//
// Name //
//
// Last accessed //
//
// {statusObj.map((appeal) => ( //
//
// // {appeal.value} // //
//
//
//
// Name //
//
// Last accessed //
//
// {appeal.statuses.map((statuses) => ( //
//
// {statuses.value} //
//
// Total: {statuses.caseCount} //
//
// ))} //
//
//
// Total: {appeal.caseCount} //
//
// ))} //
//
// ); // } import { useState } from "react"; import Link from "next/link"; export default function AppealsWithStatusTab({ statusObj = [] }) { const [openSections, setOpenSections] = useState({}); const toggleSection = (index) => { setOpenSections((current) => ({ ...current, [index]: !current[index] })); }; const showAll = () => { const allOpen = {}; statusObj.forEach((_, index) => { allOpen[index] = true; }); setOpenSections(allOpen); }; const hideAll = () => { setOpenSections({}); }; const allExpanded = statusObj.length > 0 && statusObj.every((_, index) => openSections[index]); const sortedAppeals = [...statusObj].sort( (a, b) => (b.caseCount || 0) - (a.caseCount || 0) ); const maxCount = sortedAppeals[0]?.caseCount || 1; return (

Case status by appeal type

Case counts by appeal type

{sortedAppeals.map((appeal) => { const maxCount = sortedAppeals[0]?.caseCount || 1; const width = ((appeal.caseCount || 0) / maxCount) * 100; return (
{appeal.value}
{appeal.caseCount || 0}
); })}

Case stages by appeal type

{sortedAppeals.map((appeal) => (
{appeal.value}
{(appeal.statuses || []) .filter( (status) => status.caseCount > 0 ) .sort( (a, b) => b.caseCount - a.caseCount ) .map((status, index) => ( ))}
{appeal.caseCount || 0}
))}
{[...statusObj] .sort((a, b) => (b.caseCount || 0) - (a.caseCount || 0)) .map((appeal, index) => { const isOpen = !!openSections[index]; return (

); })}
); }