import { SidebarMenuTask } from "@/types/globals"; import { Tooltip } from "@nextui-org/react"; import Link from "next/link"; import { usePathname } from "next/navigation"; import React, { useEffect, useState } from "react"; import { ChevronLeftIcon, ChevronRightIcon, FormCustomIcon, FormHorizontalIcon, FormLayoutIcon, FormValidationIcon, FormVerticalIcon, } from "../../icons"; import { DashboardIcon, HomeIcon, InfoCircleIcon, MinusCircleIcon, TableIcon, } from "../../icons/sidebar-icon"; import { ThemeSwitch } from "../../theme-switch"; import { SidebarCollapseItems } from "./sidebar-collapse-items"; import { SidebarCollapseSubItems } from "./sidebar-collapse-sub-items"; import { useSidebar } from "./sidebar-context"; import { SidebarMenu } from "./sidebar-menu"; interface SubMenuItems { id: number; name: string; modulePathUrl: string; isSubActive: boolean; } interface MenuItems { id: number; name: string; modulePathUrl: string; isSubActive: boolean; childMenu?: SubMenuItems[]; icon?: string; } interface SidebarProps { sidebarData: boolean; updateSidebarData: (newData: boolean) => void; } const sideBarDummyData = [ { id: 1, name: "Dashboard", moduleId: 652, moduleName: "Dashboard", modulePathUrl: "/admin/dashboard", isGroup: true, parentId: -1, icon: "dashboard", position: 1, statusId: 1, childMenu: [], statusName: "Active", childModule: null, }, { id: 2, name: "Dashboard", moduleId: 652, moduleName: "Dashboard", modulePathUrl: "/admin/dashboard", parentId: -1, icon: , position: 1, statusId: 1, childMenu: [], statusName: "Active", childModule: null, }, { id: 3, name: "Apps", moduleId: 652, moduleName: "Dashboard", modulePathUrl: "/admin/basic", isGroup: true, parentId: -1, icon: "table", position: 1, statusId: 1, childMenu: [], statusName: "Active", childModule: null, }, { id: 4, name: "Artikel", moduleId: 652, moduleName: "Dashboard", modulePathUrl: "/admin/article", parentId: -1, icon: , position: 1, statusId: 1, childMenu: [], statusName: "Active", childModule: null, }, // { // id: 4, // name: "E-Magazine", // moduleId: 652, // moduleName: "Dashboard", // modulePathUrl: "/admin/e-magazine", // parentId: -1, // icon: , // position: 1, // statusId: 1, // childMenu: [], // statusName: "Active", // childModule: null, // }, { id: 5, name: "Master", moduleId: 652, moduleName: "Dashboard", isGroup: true, modulePathUrl: "/admin/basic", parentId: -1, icon: "table", position: 1, statusId: 1, childMenu: [], statusName: "Active", childModule: null, }, // { // id: 6, // name: "Master Menu", // moduleId: 652, // moduleName: "Form Custom", // modulePathUrl: "/admin/master-menu", // parentId: -1, // icon: , // position: 1, // statusId: 1, // childMenu: [], // statusName: "Active", // childModule: null, // }, // { // id: 7, // name: "Master Module", // moduleId: 653, // moduleName: "Form Horizontal", // modulePathUrl: "/admin/master-module", // parentId: -1, // icon: , // position: 1, // statusId: 1, // childMenu: [], // statusName: "Active", // childModule: null, // }, { id: 8, name: "Master User", moduleId: 654, moduleName: "Form Vertical", modulePathUrl: "/admin/master-user", parentId: -1, icon: , position: 1, statusId: 1, childMenu: [], statusName: "Active", childModule: null, }, // { // id: 9, // name: "Master User Level", // moduleId: 655, // moduleName: "Form User Level", // modulePathUrl: "/admin/master-user-level", // parentId: -1, // icon: , // position: 1, // statusId: 1, // childMenu: [], // statusName: "Active", // childModule: null, // }, { id: 10, name: "Master User Role", moduleId: 656, moduleName: "Form Validation", modulePathUrl: "/admin/master-role", parentId: -1, icon: , position: 1, statusId: 1, childMenu: [], statusName: "Active", childModule: null, }, // { // id: 11, // name: "Form Wizard", // moduleId: 657, // moduleName: "Form Wizard", // modulePathUrl: "/admin/form-wizard", // parentId: -1, // icon: , // position: 1, // statusId: 1, // childMenu: [], // statusName: "Active", // childModule: null, // }, // { // id: 13, // name: "Others", // moduleId: 658, // moduleName: "Others", // modulePathUrl: "/admin/basic", // isGroup: true, // parentId: -1, // icon: "table", // position: 1, // statusId: 1, // childMenu: [], // statusName: "Active", // childModule: null, // }, // { // id: 13, // name: "Menu 1", // moduleId: 652, // moduleName: "Menu 1", // modulePathUrl: "/admin/menu1", // parentId: -1, // icon: , // position: 1, // statusId: 1, // statusName: "Active", // childMenu: [ // { // id: 3, // name: "SubMenu 1", // moduleId: 653, // moduleName: "SubMenu 1", // modulePathUrl: "/admin/menu1/submenu1", // parentId: 702, // icon: , // position: 2, // statusId: 1, // statusName: "Active", // childMenu: [], // childModule: null, // }, // { // id: 4, // name: "SubMenu 2", // moduleId: 653, // moduleName: "SubMenu 2", // modulePathUrl: "/admin/menu1/submenu2", // parentId: 702, // icon: , // position: 2, // statusId: 1, // statusName: "Active", // childMenu: [], // childModule: null, // } // ], // childModule: null, // }, ]; const Sidebar: React.FC = ({ updateSidebarData }) => { const pathname = usePathname(); const [sidebarMenu, setSidebarMenu] = useState(); const { isOpen, toggleSidebar } = useSidebar(); const closeSidebar = () => { if (isOpen) { toggleSidebar(); } }; useEffect(() => { updateSidebarData(isOpen); }, [isOpen]); const renderIcon = (icon: string) => { switch (icon) { case "dashboard": return ; case "menu1": return ; case "table": return ; default: return null; } }; return (
{!isOpen && (
)}
{/* {isOpen && ACME} */}
{isOpen && ( )}
{/*

Signed in as

@tonyreichert

Profile Settings Analytics Help & Feedback Log Out
*/} {sideBarDummyData ? sideBarDummyData?.map((list: any, index: number) => list.isGroup ? (

{isOpen ? list.name : "..."}

) : list.childMenu?.length < 1 ? ( <> {isOpen ? (
{list.icon} {isOpen && list.name}
) : (
{list.icon} {isOpen && list.name}
)} ) : ( ( )), ]} /> ) ) : ""}
{/*
{sideBarDummyData.map((list) => (
))}
{isOpen && (
)} */}
); }; export default Sidebar;