import Divider from "@mui/material/Divider";
import Box from "@mui/material/Box";
import React from "react";
import List from "@mui/material/List";
import ListItemButton from "@mui/material/ListItemButton";
import ListItemText from "@mui/material/ListItemText";
import ListItemIcon from "@mui/material/ListItemIcon";
import WorkHistory from "@mui/icons-material/WorkHistory";
import Dashboard from "@mui/icons-material/Dashboard";
import SummarizeIcon from "@mui/icons-material/Summarize";
import PaymentsIcon from "@mui/icons-material/Payments";
import AccountTreeIcon from "@mui/icons-material/AccountTree";
import RequestQuote from "@mui/icons-material/RequestQuote";
import PeopleIcon from "@mui/icons-material/People";
import Task from "@mui/icons-material/Task";
import Assignment from "@mui/icons-material/Assignment";
import Settings from "@mui/icons-material/Settings";
import Analytics from "@mui/icons-material/Analytics";
import Payments from "@mui/icons-material/Payments";
import Staff from "@mui/icons-material/PeopleAlt";
import Company from '@mui/icons-material/Store';
import Department from '@mui/icons-material/Diversity3';
import Position from '@mui/icons-material/Paragliding';
import Salary from '@mui/icons-material/AttachMoney';
import Team from '@mui/icons-material/Paragliding';
import Holiday from '@mui/icons-material/CalendarMonth';
import { useTranslation } from "react-i18next";
import Typography from "@mui/material/Typography";
import { usePathname } from "next/navigation";
import Link from "next/link";
import { NAVIGATION_CONTENT_WIDTH } from "@/config/uiConfig";
import Logo from "../Logo";
import GroupIcon from '@mui/icons-material/Group';
import BusinessIcon from '@mui/icons-material/Business';
import ViewWeekIcon from '@mui/icons-material/ViewWeek';
import ManageAccountsIcon from '@mui/icons-material/ManageAccounts';
import EmojiEventsIcon from '@mui/icons-material/EmojiEvents';
interface NavigationItem {
icon: React.ReactNode;
label: string;
path: string;
children?: NavigationItem[];
}
const navigationItems: NavigationItem[] = [
{ icon: , label: "User Workspace", path: "/home" },
{
icon: ,
label: "Dashboard",
path: "",
children: [
{
icon: ,
label: "Financial Summary",
path: "/dashboard/ProjectFinancialSummary",
},
{
icon: ,
label: "Company / Team Cash Flow",
path: "/dashboard/CompanyTeamCashFlow",
},
{
icon: ,
label: "Project Cash Flow",
path: "/dashboard/ProjectCashFlow",
},
{
icon: ,
label: "Project Status by Client",
path: "/dashboard/ProjectStatusByClient",
},
{
icon: ,
label: "Project Status by Team",
path: "/dashboard/ProjectStatusByTeam",
},
{
icon: ,
label: "Staff Utilization",
path: "/dashboard/StaffUtilization",
},
{
icon: ,
label: "Project Resource Summary",
path: "/dashboard/ProjectResourceSummary",
}
],
},
{
icon: ,
label: "Staff Reimbursement",
path: "/staffReimbursement",
children: [
{
icon: ,
label: "Claim Approval",
path: "/staffReimbursement/ClaimApproval",
},
{
icon: ,
label: "Claim Summary",
path: "/staffReimbursement/ClaimSummary",
},
],
},
{ icon: , label: "Project Management", path: "/projects" },
{ icon: , label: "Task Template", path: "/tasks" },
{ icon: , label: "Invoice", path: "/invoice" },
{ icon: , label: "Analysis Report", path: "",
children: [
{icon: , label:"Late Start Report", path: "/analytics/LateStartReport"},
{icon: , label:"Delay Report", path: "/analytics/DelayReport"},
{icon: , label:"Resource Overconsumption Report", path: "/analytics/ResourceOverconsumptionReport"},
{icon: , label:"Cost and Expense Report", path: "/analytics/CostandExpenseReport"},
{icon: , label:"Completion Report", path: "/analytics/ProjectCompletionReport"},
{icon: , label:"Completion Report with Outstanding Un-billed Hours Report", path: "/analytics/ProjectCompletionReportWO"},
{icon: , label:"Project Claims Report", path: "/analytics/ProjectClaimsReport"},
{icon: , label:"Project P&L Report", path: "/analytics/ProjectPLReport"},
{icon: , label:"Financial Status Report", path: "/analytics/FinancialStatusReport"},
{icon: , label:"EX02 - Project Cash Flow Report", path: "/analytics/EX02ProjectCashFlowReport"},
],
},
{
icon: , label: "Setting", path: "",
children: [
{ icon: , label: "Client", path: "/settings/customer" },
{ icon: , label: "Subsidiary", path: "/settings/subsidiary" },
{ icon: , label: "Staff", path: "/settings/staff" },
{ icon: , label: "Company", path: "/settings/company" },
{ icon: , label: "Skill", path: "/settings/skill" },
{ icon: , label: "Department", path: "/settings/department" },
{ icon: , label: "Position", path: "/settings/position" },
{ icon: , label: "Salary", path: "/settings/salary" },
{ icon: , label: "Team", path: "/settings/team" },
{ icon: , label: "User", path: "/settings/user" },
{ icon: , label: "Holiday", path: "/settings/holiday" },
],
},
];
const NavigationContent: React.FC = () => {
const { t } = useTranslation("common");
const pathname = usePathname();
const [openItems, setOpenItems] = React.useState([]);
const toggleItem = (label: string) => {
setOpenItems((prevOpenItems) =>
prevOpenItems.includes(label)
? prevOpenItems.filter((item) => item !== label)
: [...prevOpenItems, label],
);
};
const renderNavigationItem = (item: NavigationItem) => {
const isOpen = openItems.includes(item.label);
return (
item.children && toggleItem(item.label)}
>
{item.icon}
{item.children && isOpen && (
{item.children.map((child) => renderNavigationItem(child))}
)}
);
};
return (
{/* */}
{navigationItems.map((item) => renderNavigationItem(item))}
{/* {navigationItems.map(({ icon, label, path }, index) => {
return (
{icon}
);
})} */}
);
};
export default NavigationContent;