
КРИТИЧНЫЕ КОМПОНЕНТЫ ОПТИМИЗИРОВАНЫ: • AdminDashboard (346 kB) - добавлены React.memo, useCallback, useMemo • SellerStatisticsDashboard (329 kB) - мемоизация кэша и callback функций • CreateSupplyPage (276 kB) - оптимизированы вычисления и обработчики • EmployeesDashboard (268 kB) - мемоизация списков и функций • SalesTab + AdvertisingTab - React.memo обертка ТЕХНИЧЕСКИЕ УЛУЧШЕНИЯ: ✅ React.memo() для предотвращения лишних рендеров ✅ useMemo() для тяжелых вычислений ✅ useCallback() для стабильных ссылок на функции ✅ Мемоизация фильтрации и сортировки списков ✅ Оптимизация пропсов в компонентах-контейнерах РЕЗУЛЬТАТЫ: • Все компоненты успешно компилируются • Линтер проходит без критических ошибок • Сохранена вся функциональность • Улучшена производительность рендеринга • Снижена нагрузка на React дерево 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
36 lines
860 B
TypeScript
36 lines
860 B
TypeScript
'use client'
|
|
|
|
import { useState } from 'react'
|
|
|
|
import { useSidebar } from '@/hooks/useSidebar'
|
|
|
|
import { DashboardHome } from './dashboard-home'
|
|
import { Sidebar } from './sidebar'
|
|
import { UserSettings } from './user-settings'
|
|
|
|
export type DashboardSection = 'home' | 'settings'
|
|
|
|
export function Dashboard() {
|
|
const { getSidebarMargin } = useSidebar()
|
|
const [activeSection] = useState<DashboardSection>('home')
|
|
|
|
const renderContent = () => {
|
|
switch (activeSection) {
|
|
case 'settings':
|
|
return <UserSettings />
|
|
case 'home':
|
|
default:
|
|
return <DashboardHome />
|
|
}
|
|
}
|
|
|
|
return (
|
|
<div className="h-screen flex overflow-hidden">
|
|
<Sidebar />
|
|
<main className={`flex-1 ${getSidebarMargin()} px-6 py-4 overflow-hidden transition-all duration-300`}>
|
|
{renderContent()}
|
|
</main>
|
|
</div>
|
|
)
|
|
}
|