"use client";
import { useState } from "react";
import {
Pencil,
Plus,
} from "lucide-react";
import { initialModules } from "@/constants/constant";
import Button from "@/components/common/button";
export default function ModulesPortal() {
const [selectedModuleId, setSelectedModuleId] = useState("MOD-01");
const activeModule = initialModules.find((m) => m.id === selectedModuleId);
return (
{/* Header Section */}
PLATFORM
•
MODULES
Modules
The catalog of system modules and their menus. These are what you switch on per tenant under feature access.
{/* Main Grid Container */}
{/* Left Column: Modules List */}
{/* Section Header */}
Modules
{initialModules.length} available
{/* Module Items */}
{initialModules.map((module) => {
const Icon = module.icon;
const isSelected = module.id === selectedModuleId;
return (
setSelectedModuleId(module.id)}
className={`group relative flex items-center justify-between p-3.5 rounded-lg border cursor-pointer transition-all ${
isSelected
? "bg-teal-950/30 border-teal-500/40"
: "bg-[#09111E]/40 border-slate-800/60 hover:border-slate-700 hover:bg-[#0D1726]"
}`}
>
{module.title}
{module.description}
{module.id}
);
})}
{/* Right Column: Menus Panel */}
{/* Menus Header */}
Menus
Under {activeModule?.title || "Module"}
{/* Empty State / Menus List */}
{activeModule?.menus && activeModule.menus.length > 0 ? (
{activeModule.menus.map((menu, idx) => (
{menu}
))}
) : (
No menus under this module yet.
)}
);
}