Files
tracksteel_app/src/components/Layout.tsx
T
Marcos a7bb224a48 refactor: otimização e refatoração do app
- Lazy loading de rotas com React.lazy + Suspense (code-splitting)
- main.tsx reduzido de 378 para ~55 linhas (roteamento data-driven)
- Novo routeConfig.ts e AppRoutes.tsx para configuração centralizada
- 601 console.logs dos componentes core migrados para logger centralizado
- Logger aprimorado com nível debug e tipagem melhorada
- Imports mal posicionados corrigidos (OptimizedCache, PerformanceMonitor)
- process.env.NODE_ENV substituído por import.meta.env.DEV (padrão Vite)
- QueryClient com retry backoff exponencial, gcTime e refetchOnWindowFocus
- Toaster duplicado removido do Layout.tsx (mantido no main.tsx)
- Vite build: chunks adicionais para date-fns, jspdf, lucide-react
- Dead code removido em ProtectedRouteByResource (branch unreachable)
- Nenhuma lógica de negócios alterada
2026-08-09 22:18:41 +00:00

36 lines
1.2 KiB
TypeScript

import React from 'react';
import { SidebarProvider, SidebarTrigger } from '@/components/ui/sidebar';
import { AppSidebar } from '@/components/AppSidebar';
import { ApontamentoAutomaticoListener } from '@/components/expedicao/ApontamentoAutomaticoListener';
import { ThemeToggle } from '@/components/ThemeToggle';
interface LayoutProps {
children: React.ReactNode;
}
export const Layout = ({ children }: LayoutProps) => {
return (
<SidebarProvider>
<div className="min-h-screen flex w-full">
<AppSidebar />
<main className="flex-1 overflow-hidden flex flex-col">
{/* Header fixo com SidebarTrigger e ThemeToggle */}
<header className="h-14 border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60 flex items-center justify-between px-4 shrink-0">
<div className="flex items-center">
<SidebarTrigger />
</div>
<ThemeToggle />
</header>
{/* Conteúdo principal */}
<div className="flex-1 overflow-auto">
{children}
</div>
</main>
{/* Listener global para apontamento automático */}
<ApontamentoAutomaticoListener />
</div>
</SidebarProvider>
);
};