Исправлена навигация сайдбара: убраны перезагрузки страницы и добавлен персистентный сайдбар

- Создан layout для (dashboard) группы с персистентным сайдбаром
- Заменен window.location.href на router.push() в хуках авторизации
- Перемещены все страницы в (dashboard) группу для единого layout
- Удалены дублирующие <Sidebar /> компоненты из индивидуальных страниц
- Исправлены все компоненты dashboard для использования getSidebarMargin()
- Добавлена skeleton загрузка кнопок сайдбара для плавного UX
- Исправлены критические синтаксические ошибки в JSX компонентах
- Удалены дублирующие main теги и исправлена структура layout

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Bivekich
2025-08-07 19:23:51 +03:00
parent f6a40414ab
commit 9da1fe9e78
76 changed files with 255 additions and 337 deletions

View File

@ -4,7 +4,6 @@ import { useQuery } from '@apollo/client'
import { Plus, Package, Grid3X3, List, Edit3, Trash2 } from 'lucide-react'
import React, { useState } from 'react'
import { Sidebar } from '@/components/dashboard/sidebar'
import { Button } from '@/components/ui/button'
import { Card } from '@/components/ui/card'
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from '@/components/ui/dialog'
@ -88,8 +87,7 @@ export function WarehouseDashboard() {
if (error) {
return (
<div className="h-screen flex overflow-hidden">
<Sidebar />
<div className={`${getSidebarMargin()} px-6 py-4 overflow-hidden transition-all duration-300 h-full`}>
<main className="flex-1 ml-56 px-6 py-4 overflow-hidden">
<div className="h-full w-full flex flex-col">
<Card className="flex-1 bg-white/5 backdrop-blur border-white/10 p-6">
@ -105,15 +103,14 @@ export function WarehouseDashboard() {
</div>
</Card>
</div>
</main>
</div>
)
}
return (
<div className="h-screen flex overflow-hidden">
<Sidebar />
<main className={`flex-1 ${getSidebarMargin()} px-6 py-4 overflow-hidden transition-all duration-300`}>
<div className={`${getSidebarMargin()} px-6 py-4 overflow-hidden transition-all duration-300 h-full`}>
<div className="h-full w-full flex flex-col">
{/* Поиск и управление */}
<div className="flex items-center justify-between mb-4 flex-shrink-0">
@ -330,7 +327,7 @@ export function WarehouseDashboard() {
)}
</Card>
</div>
</main>
</div>
)
}