import { useEffect, useState, lazy, Suspense } from 'react'; import { BrowserRouter as Router, Routes, Route, useLocation } from 'react-router-dom'; import { gsap } from 'gsap'; import { ScrollTrigger } from 'gsap/ScrollTrigger'; import Navigation from './sections/Navigation'; import Footer from './sections/Footer'; import WhatsAppWidget from './components/WhatsAppWidget'; import CookieConsent from './components/CookieConsent'; import HomologationBanner from './components/HomologationBanner'; // Página inicial carrega direto (mais acessada) import Home from './pages/Home'; import NotFound from './pages/NotFound'; // Todas as outras páginas com lazy loading para reduzir bundle inicial const Sobre = lazy(() => import('./pages/Sobre')); const Blog = lazy(() => import('./pages/Blog')); const BlogPost = lazy(() => import('./pages/BlogPost')); const Cases = lazy(() => import('./pages/Cases')); const Contato = lazy(() => import('./pages/Contato')); const Privacidade = lazy(() => import('./pages/Privacidade')); const Termos = lazy(() => import('./pages/Termos')); // Páginas de Serviços const TiGerenciada = lazy(() => import('./pages/services/TiGerenciada')); const CloudComputing = lazy(() => import('./pages/services/CloudComputing')); const Seguranca = lazy(() => import('./pages/services/Seguranca')); const Suporte = lazy(() => import('./pages/services/Suporte')); const Redes = lazy(() => import('./pages/services/Redes')); const Pabx = lazy(() => import('./pages/services/Pabx')); const Backup = lazy(() => import('./pages/services/Backup')); const Servidores = lazy(() => import('./pages/services/Servidores')); const Consultoria = lazy(() => import('./pages/services/Consultoria')); const Noc = lazy(() => import('./pages/services/Noc')); // Páginas de Tecnologias (SEO) const Tecnologias = lazy(() => import('./pages/Tecnologias')); const WindowsServer = lazy(() => import('./pages/tech/WindowsServer')); const Linux = lazy(() => import('./pages/tech/Linux')); const PfSense = lazy(() => import('./pages/tech/PfSense')); const Proxmox = lazy(() => import('./pages/tech/Proxmox')); const Vmware = lazy(() => import('./pages/tech/Vmware')); const Sharepoint = lazy(() => import('./pages/tech/Sharepoint')); const Cisco = lazy(() => import('./pages/tech/Cisco')); // Avaliador de Maturidade Tecnológica const Avaliador = lazy(() => import('./pages/Avaliador')); const Condominios = lazy(() => import('./pages/Condominios')); // Landing Pages por Nicho const Contabilidade = lazy(() => import('./pages/nichos/Contabilidade')); const Advocacia = lazy(() => import('./pages/nichos/Advocacia')); const Monitoramento = lazy(() => import('./pages/nichos/Monitoramento')); const FirewallPfSense = lazy(() => import('./pages/nichos/FirewallPfSense')); const BackupCorporativo = lazy(() => import('./pages/nichos/BackupCorporativo')); const VoipEmpresarial = lazy(() => import('./pages/nichos/VoipEmpresarial')); // SEO Local - Onde Atuamos const OndeAtuamos = lazy(() => import('./pages/OndeAtuamos')); const LocalGuarulhos = lazy(() => import('./pages/local-guarulhos')); const LocalMogi = lazy(() => import('./pages/local-mogi-das-cruzes')); const LocalIpiranga = lazy(() => import('./pages/local-ipiranga')); const LocalVilaFormosa = lazy(() => import('./pages/local-vila-formosa')); const LocalCerqueiraCesar = lazy(() => import('./pages/local-cerqueira-cesar')); const LocalSantana = lazy(() => import('./pages/local-santana')); const LocalBras = lazy(() => import('./pages/local-bras')); const LocalRibeiraoPreto = lazy(() => import('./pages/local-ribeirao-preto')); // Nichos adicionais const NichoIndustria = lazy(() => import('./pages/nicho-industria')); const NichoPortaria = lazy(() => import('./pages/nicho-portaria-remota')); const NichoClinicas = lazy(() => import('./pages/nicho-clinicas')); const NichoImobiliarias = lazy(() => import('./pages/nicho-imobiliarias')); const NichoRecrutamento = lazy(() => import('./pages/nicho-recrutamento-selecao')); // Avanzato Tools const Ferramentas = lazy(() => import('./pages/ferramentas')); const SpfChecker = lazy(() => import('./pages/ferramentas/SpfChecker')); const DkimChecker = lazy(() => import('./pages/ferramentas/DkimChecker')); const DmarcChecker = lazy(() => import('./pages/ferramentas/DmarcChecker')); const MxLookup = lazy(() => import('./pages/ferramentas/MxLookup')); const SslChecker = lazy(() => import('./pages/ferramentas/SslChecker')); const EmailSecurityScore = lazy(() => import('./pages/ferramentas/EmailSecurityScore')); const Microsoft365Analyzer = lazy(() => import('./pages/ferramentas/Microsoft365Analyzer')); import './App.css'; gsap.registerPlugin(ScrollTrigger); // Componente para scroll ao topo ao mudar de página function ScrollToTop() { const { pathname } = useLocation(); useEffect(() => { window.scrollTo(0, 0); // Refresh ScrollTrigger ao mudar de página ScrollTrigger.refresh(); }, [pathname]); return null; } // Componente de Progress Bar function ProgressBar() { const [scrollProgress, setScrollProgress] = useState(0); useEffect(() => { const handleScroll = () => { const scrollTop = window.scrollY; const docHeight = document.documentElement.scrollHeight - window.innerHeight; const progress = (scrollTop / docHeight) * 100; setScrollProgress(progress); }; window.addEventListener('scroll', handleScroll, { passive: true }); return () => window.removeEventListener('scroll', handleScroll); }, []); return (
); } // Loading simples para lazy load const PageLoader = () => (