import React, { useState, useEffect, useMemo } from 'react'; import { Briefcase, Target, Vote, Calculator, Plus, Megaphone, Printer, ChevronRight } from 'lucide-react'; // Modular Imports import { DevSummary } from './development/DevSummary'; import { PipelineRegistry } from './development/PipelineRegistry'; import { OSSMaster } from './development/OSSMaster'; import { TechnicalAudit } from './development/TechnicalAudit'; import { MarketingCampaigns } from './development/MarketingCampaigns'; import { allowedSubsForSection } from '../constants/permissions'; type Tab = 'summary' | 'pipeline' | 'oss' | 'audit' | 'marketing'; const DEV_TABS: Tab[] = ['summary', 'pipeline', 'oss', 'audit', 'marketing']; const SUBTAB_KEY = 'mkd_subTab_development'; interface DevelopmentModuleProps { allowedPermissions?: string[] | null; } export const DevelopmentModule: React.FC = ({ allowedPermissions }) => { const visibleTabs = useMemo(() => { const allowed = allowedSubsForSection(allowedPermissions ?? [], 'development'); if (allowed === 'all') return DEV_TABS; return DEV_TABS.filter((t) => allowed.includes(t)); }, [allowedPermissions]); const [activeTab, setActiveTab] = useState(() => { const s = localStorage.getItem(SUBTAB_KEY); return (s && DEV_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: Target }, { id: 'pipeline', label: 'Воронка', icon: Briefcase }, { id: 'oss', label: 'ОСС', icon: Vote }, { id: 'audit', label: 'Аудит', icon: Calculator }, { id: 'marketing', label: 'Поле', icon: Megaphone }, ].filter((tab) => visibleTabs.includes(tab.id as Tab)).map((tab) => ( ))}
{/* Dynamic Sheet Content */}
{activeTab === 'summary' && } {activeTab === 'pipeline' && } {activeTab === 'oss' && } {activeTab === 'audit' && } {activeTab === 'marketing' && }
); };