import React, { useState, useEffect, useMemo } from 'react'; import { Scale, FileSignature, Gavel, FileText, ShieldAlert, Plus, Printer, HandCoins } from 'lucide-react'; // Modular Imports import { LegalSummary } from './legal/LegalSummary'; import { ContractsRegistry } from './legal/ContractsRegistry'; import { CourtCases } from './legal/CourtCases'; import { PreTrialWork } from './legal/PreTrialWork'; import { ComplianceCheck } from './legal/ComplianceCheck'; import { DebtRecoveryPipeline } from './legal/DebtRecoveryPipeline'; import { allowedSubsForSection } from '../constants/permissions'; type Tab = 'summary' | 'debt' | 'contracts' | 'courts' | 'preTrial' | 'compliance'; const LEGAL_TABS: Tab[] = ['summary', 'debt', 'contracts', 'courts', 'preTrial', 'compliance']; const SUBTAB_KEY = 'mkd_subTab_legal'; interface LegalModuleProps { allowedPermissions?: string[] | null; } export const LegalModule: React.FC = ({ allowedPermissions }) => { const visibleTabs = useMemo(() => { const allowed = allowedSubsForSection(allowedPermissions ?? [], 'legal'); if (allowed === 'all') return LEGAL_TABS; return LEGAL_TABS.filter((t) => allowed.includes(t)); }, [allowedPermissions]); const [activeTab, setActiveTab] = useState(() => { const s = localStorage.getItem(SUBTAB_KEY); return (s && LEGAL_TABS.includes(s as Tab)) ? s as Tab : 'summary'; }); useEffect(() => { if (visibleTabs.length > 0 && !visibleTabs.includes(activeTab)) { setActiveTab(visibleTabs[0]); } }, [visibleTabs, activeTab]); useEffect(() => { if (visibleTabs.includes(activeTab)) localStorage.setItem(SUBTAB_KEY, activeTab); }, [activeTab, visibleTabs]); return (

Юридический отдел

Правовое сопровождение и взыскание

{/* Sheet Selector */}
{[ { id: 'summary', label: 'Сводка', icon: Scale }, { id: 'debt', label: 'Взыскание', icon: HandCoins }, { id: 'contracts', label: 'Договоры', icon: FileSignature }, { id: 'courts', label: 'Суды', icon: Gavel }, { id: 'preTrial', label: 'Досудебная работа', icon: FileText }, { id: 'compliance', label: 'Проверка', icon: ShieldAlert }, ].filter((tab) => visibleTabs.includes(tab.id as Tab)).map((tab) => ( ))}
{/* Dynamic Sheet Content */}
{activeTab === 'summary' && } {activeTab === 'debt' && setActiveTab('preTrial')} />} {activeTab === 'contracts' && } {activeTab === 'courts' && } {activeTab === 'preTrial' && } {activeTab === 'compliance' && }
); };