import { useState } from 'react'; import { FileText, Tag, TrendingUp, ChevronDown, ChevronRight, DollarSign } from 'lucide-react'; import { useToast, ToastContainer } from '../../components/UI/Toast'; import DocumentType from '../../components/Settings/HRM/DocumentType'; import SkillTag from '../../components/Settings/HRM/SkillTag'; import SkillLevel from '../../components/Settings/HRM/SkillLevel'; import PerHourCost from '../../components/Settings/HRM/PerHourCost'; type HRMSection = 'document-type' | 'skill-tag' | 'skill-level' | 'per-hour-cost'; const HRMSettings = () => { const toast = useToast(); const [activeSection, setActiveSection] = useState('document-type'); // State for collapsed sections const [collapsedSections, setCollapsedSections] = useState>({ 'HRM Settings': false, // Open by default }); // Toggle section collapse const toggleSection = (sectionLabel: string) => { setCollapsedSections((prev) => ({ ...prev, [sectionLabel]: !prev[sectionLabel], })); }; // Menu groups with collapsible functionality const menuGroups: { label: string; items: { id: HRMSection; label: string; description: string; icon: typeof FileText }[] }[] = [ { label: 'HRM Settings', items: [ { id: 'document-type', label: 'Document Type', description: 'Manage document types', icon: FileText }, { id: 'skill-tag', label: 'Skill Tag', description: 'Manage skill tags', icon: Tag }, { id: 'skill-level', label: 'Skill Level', description: 'Manage skill levels', icon: TrendingUp }, { id: 'per-hour-cost', label: 'Per Hour Cost', description: 'Manage per hour cost', icon: DollarSign }, ], }, ]; const renderContent = () => { switch (activeSection) { case 'document-type': return ; case 'skill-tag': return ; case 'skill-level': return ; case 'per-hour-cost': return ; default: return (

Coming soon...

); } }; return ( <>
{/* LEFT CONTENT */}
{renderContent()}
{/* RIGHT SIDEBAR */}

HRM Settings

Manage HRM related settings

{menuGroups.map((group) => { const isCollapsed = collapsedSections[group.label]; const isActive = group.items.some((item) => item.id === activeSection); return (
{/* Section Header with dropdown icon */} {/* Menu Items - Collapsible */} {!isCollapsed && (
{group.items.map((item) => { const Icon = item.icon; const active = activeSection === item.id; return ( ); })}
)}
); })}
); }; export default HRMSettings;