Revisão logo
This commit is contained in:
+1
-1
@@ -1,5 +1,5 @@
|
||||
import { useEffect, useState } from 'react';
|
||||
import { BrowserRouter as Router, Routes, Route, useLocation } from 'react-router-dom';
|
||||
import { HashRouter as Router, Routes, Route, useLocation } from 'react-router-dom';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
import Navigation from './sections/Navigation';
|
||||
|
||||
@@ -1,120 +0,0 @@
|
||||
// ============================================================================
|
||||
// SEO - Meta tags dinamicas por pagina
|
||||
// ============================================================================
|
||||
// Uso: <SEO title="..." description="..." />
|
||||
//
|
||||
// Cada pagina deve usar este componente com suas proprias tags.
|
||||
// O canonical e gerado automaticamente a partir da URL atual.
|
||||
// ============================================================================
|
||||
|
||||
import { Helmet } from 'react-helmet-async';
|
||||
import { useLocation } from 'react-router-dom';
|
||||
|
||||
interface SEOProps {
|
||||
title?: string;
|
||||
description?: string;
|
||||
keywords?: string;
|
||||
ogImage?: string;
|
||||
ogType?: string;
|
||||
noindex?: boolean;
|
||||
schema?: Record<string, any>;
|
||||
}
|
||||
|
||||
const SITE_URL = 'https://avanzato.com.br';
|
||||
const DEFAULT_TITLE = 'Avanzato Tecnologia | TI Gerenciada, Cloud e Seguranca';
|
||||
const DEFAULT_DESC = 'Solucoes em TI Gerenciada, Cloud Computing e Seguranca da Informacao. +23 anos de experiencia, +500 clientes atendidos. Suporte 24/7 em Guarulhos e regiao.';
|
||||
const DEFAULT_OG_IMAGE = 'https://avanzato.com.br/og-image.jpg';
|
||||
|
||||
export default function SEO({
|
||||
title,
|
||||
description,
|
||||
keywords,
|
||||
ogImage,
|
||||
ogType = 'website',
|
||||
noindex = false,
|
||||
schema,
|
||||
}: SEOProps) {
|
||||
const location = useLocation();
|
||||
const pathname = location.pathname;
|
||||
const canonicalUrl = `${SITE_URL}${pathname}`;
|
||||
const fullTitle = title ? `${title} | Avanzato` : DEFAULT_TITLE;
|
||||
|
||||
return (
|
||||
<Helmet>
|
||||
{/* Title */}
|
||||
<title>{fullTitle}</title>
|
||||
<meta name="title" content={fullTitle} />
|
||||
|
||||
{/* Description */}
|
||||
{description && <meta name="description" content={description} />}
|
||||
{!description && <meta name="description" content={DEFAULT_DESC} />}
|
||||
|
||||
{/* Keywords */}
|
||||
{keywords && <meta name="keywords" content={keywords} />}
|
||||
|
||||
{/* Canonical - DINAMICO por pagina */}
|
||||
<link rel="canonical" href={canonicalUrl} />
|
||||
|
||||
{/* Robots */}
|
||||
{noindex ? (
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
) : (
|
||||
<meta name="robots" content="index, follow" />
|
||||
)}
|
||||
|
||||
{/* Open Graph */}
|
||||
<meta property="og:type" content={ogType} />
|
||||
<meta property="og:url" content={canonicalUrl} />
|
||||
<meta property="og:title" content={fullTitle} />
|
||||
<meta property="og:description" content={description || DEFAULT_DESC} />
|
||||
<meta property="og:image" content={ogImage || DEFAULT_OG_IMAGE} />
|
||||
<meta property="og:locale" content="pt_BR" />
|
||||
<meta property="og:site_name" content="Avanzato Tecnologia" />
|
||||
|
||||
{/* Twitter */}
|
||||
<meta property="twitter:card" content="summary_large_image" />
|
||||
<meta property="twitter:url" content={canonicalUrl} />
|
||||
<meta property="twitter:title" content={fullTitle} />
|
||||
<meta property="twitter:description" content={description || DEFAULT_DESC} />
|
||||
<meta property="twitter:image" content={ogImage || DEFAULT_OG_IMAGE} />
|
||||
|
||||
{/* Schema.org */}
|
||||
{schema && (
|
||||
<script type="application/ld+json">
|
||||
{JSON.stringify(schema)}
|
||||
</script>
|
||||
)}
|
||||
</Helmet>
|
||||
);
|
||||
}
|
||||
|
||||
// Schema helpers
|
||||
export const createServiceSchema = (name: string, description: string, urlPath: string) => ({
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'Service',
|
||||
name,
|
||||
description,
|
||||
provider: {
|
||||
'@type': 'Organization',
|
||||
name: 'Avanzato Tecnologia',
|
||||
url: SITE_URL,
|
||||
},
|
||||
url: `${SITE_URL}${urlPath}`,
|
||||
areaServed: {
|
||||
'@type': 'City',
|
||||
name: 'Guarulhos',
|
||||
},
|
||||
});
|
||||
|
||||
export const createFAQSchema = (questions: Array<{q: string; a: string}>) => ({
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'FAQPage',
|
||||
mainEntity: questions.map(({q, a}) => ({
|
||||
'@type': 'Question',
|
||||
name: q,
|
||||
acceptedAnswer: {
|
||||
'@type': 'Answer',
|
||||
text: a,
|
||||
},
|
||||
})),
|
||||
});
|
||||
+12
-9
@@ -11,17 +11,20 @@
|
||||
// Opcao 2: URL da imagem (deixe svgInline vazio e preencha imageUrl)
|
||||
|
||||
export const LOGO = {
|
||||
// Opcao 1: SVG inline (deixe vazio se for usar imagem)
|
||||
svgInline: '',
|
||||
// Se quiser usar SVG inline, cole o codigo aqui entre as crases
|
||||
// Exemplo: svgInline: `<svg ...>...</svg>`
|
||||
svgInline: `<svg width="40" height="40" viewBox="0 0 100 100">
|
||||
<path d="M50 15 L75 75 H60 L55 60 H45 L40 75 H25 L50 15 Z M48 48 H52 L50 40 L48 48 Z"
|
||||
fill="#cbf400" stroke="#cbf400" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/>
|
||||
</svg>`,
|
||||
|
||||
// Opcao 2: URL da imagem
|
||||
// Use '/logo.png' para carregar da pasta public/ (funciona em qualquer ambiente)
|
||||
// Use 'https://avanzato.com.br/logo.png' apenas se for carregar de servidor externo
|
||||
imageUrl: '/logo.png',
|
||||
// Se quiser usar imagem (PNG/JPG), coloque o arquivo em public/assets/
|
||||
// e defina: imageUrl: '/assets/logo.png'
|
||||
imageUrl: '',
|
||||
|
||||
// Texto ao lado do logo (deixe vazio se o logo ja tiver texto)
|
||||
text: '',
|
||||
textHighlight: '',
|
||||
// Texto ao lado do logo (deixe vazio se nao quiser texto)
|
||||
text: 'avanzato',
|
||||
textHighlight: '.', // O ponto verde apos o texto
|
||||
|
||||
// Link do logo (para onde vai quando clica)
|
||||
href: '/',
|
||||
|
||||
+1
-4
@@ -1,13 +1,10 @@
|
||||
import { StrictMode } from 'react'
|
||||
import { createRoot } from 'react-dom/client'
|
||||
import { HelmetProvider } from 'react-helmet-async'
|
||||
import './index.css'
|
||||
import App from './App.tsx'
|
||||
|
||||
createRoot(document.getElementById('root')!).render(
|
||||
<StrictMode>
|
||||
<HelmetProvider>
|
||||
<App />
|
||||
</HelmetProvider>
|
||||
<App />
|
||||
</StrictMode>,
|
||||
)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { Link } from 'react-router-dom';
|
||||
import { gsap } from 'gsap';
|
||||
@@ -133,10 +132,6 @@ const Blog = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Blog de Tecnologia"
|
||||
description="Artigos e novidades sobre TI, seguranca da informacao, cloud computing e tecnologia para empresas."
|
||||
/>
|
||||
{/* Hero */}
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
<div className="absolute top-0 right-0 w-[600px] h-[600px] bg-[#cbf400]/5 rounded-full blur-3xl -translate-y-1/2 translate-x-1/2" />
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -200,10 +199,6 @@ const Cases = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Cases de Sucesso"
|
||||
description="Veja os cases de sucesso da Avanzato Tecnologia. Projetos realizados para empresas de diversos segmentos em Sao Paulo."
|
||||
/>
|
||||
{/* Schema.org JSON-LD */}
|
||||
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(schemaData) }} />
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../components/SEO';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { sendLeadToMautic, sendLeadViaMailto, trackConversion, trackFacebookPixel } from '../config/mautic';
|
||||
import { gsap } from 'gsap';
|
||||
@@ -175,10 +174,6 @@ const Condominios = () => {
|
||||
|
||||
return (
|
||||
<div className="min-h-screen bg-[#0e0e0e]">
|
||||
<SEO
|
||||
title="Tecnologia para Condominios"
|
||||
description="Solucoes de TI para condominios: CFTV, controle de acesso, interfonia IP, internet, WiFi. Atendimento em Sao Paulo."
|
||||
/>
|
||||
{/* SEO Meta Tags - Injected via useEffect */}
|
||||
<title>Tecnologia para Condomínios | VOIP e Infraestrutura | Avanzato</title>
|
||||
<meta name="description" content="Reduza custos e tenha independência com VOIP e infraestrutura para condomínios. Diagnóstico gratuito com a Avanzato." />
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { Shield, Lock, Eye, FileText, User, Share2, Mail } from 'lucide-react';
|
||||
@@ -138,11 +137,6 @@ const Privacidade = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Politica de Privacidade"
|
||||
description="Politica de Privacidade da Avanzato Tecnologia. Conformidade com a LGPD. Protecao de dados pessoais."
|
||||
noindex
|
||||
/>
|
||||
{/* Hero */}
|
||||
<section className="pt-32 pb-20 relative overflow-hidden">
|
||||
<div className="absolute top-0 right-0 w-[600px] h-[600px] bg-[#cbf400]/5 rounded-full blur-3xl -translate-y-1/2 translate-x-1/2" />
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -179,10 +178,6 @@ const Sobre = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Sobre a Avanzato Tecnologia"
|
||||
description="Conheca a Avanzato Tecnologia: +23 anos de experiencia em TI Gerenciada, Cloud e Seguranca. +500 clientes satisfeitos."
|
||||
/>
|
||||
{/* Hero Section */}
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
<div className="absolute top-0 right-0 w-[600px] h-[600px] bg-[#cbf400]/5 rounded-full blur-3xl -translate-y-1/2 translate-x-1/2" />
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -106,10 +105,6 @@ const Tecnologias = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Tecnologias que Trabalhamos"
|
||||
description="Conheca as tecnologias que a Avanzato domina: Cisco, VMware, Microsoft, Linux, pfSense, Proxmox e muito mais."
|
||||
/>
|
||||
{/* Schema.org JSON-LD */}
|
||||
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(schemaData) }} />
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { FileText, CheckCircle, AlertCircle, Scale, Gavel, RefreshCw } from 'lucide-react';
|
||||
@@ -124,11 +123,6 @@ const Termos = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Termos de Uso"
|
||||
description="Termos de Uso do site da Avanzato Tecnologia. Condicoes de acesso e utilizacao dos servicos."
|
||||
noindex
|
||||
/>
|
||||
{/* Hero */}
|
||||
<section className="pt-32 pb-20 relative overflow-hidden">
|
||||
<div className="absolute top-0 right-0 w-[600px] h-[600px] bg-[#cbf400]/5 rounded-full blur-3xl -translate-y-1/2 translate-x-1/2" />
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -54,10 +53,6 @@ function FormSection() {
|
||||
|
||||
return (
|
||||
<div id="formulario" className="scroll-mt-20">
|
||||
<SEO
|
||||
title="TI para Escritorios de Advocacia"
|
||||
description="TI para advocacias: seguranca de processos, LGPD para clientes, backup de documentos juridicos. PJe e e-SAJ."
|
||||
/>
|
||||
<div className="bg-[#1a1a1a] border border-[#333] rounded-2xl p-8 sticky top-24">
|
||||
<h3 className="text-2xl font-bold text-white mb-2">Diagnostico gratuito para seu escritorio</h3>
|
||||
<p className="text-gray-400 mb-6">Avaliamos a seguranca da sua infraestrutura e entregamos um relatorio de conformidade para a OAB.</p>
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -45,10 +44,6 @@ function FormSection() {
|
||||
|
||||
return (
|
||||
<div id="formulario" className="scroll-mt-20">
|
||||
<SEO
|
||||
title="Backup Corporativo em Nuvem"
|
||||
description="Backup empresarial automatizado: local, nuvem e hibrido. Protecao contra ransomware. Recuperacao rapida de dados."
|
||||
/>
|
||||
<div className="bg-[#1a1a1a] border border-[#333] rounded-2xl p-8 sticky top-24">
|
||||
<h3 className="text-2xl font-bold text-white mb-2">Diagnostico de backup gratuito</h3>
|
||||
<p className="text-gray-400 mb-6">Avaliamos sua estrategia atual e identificamos falhas antes que seja tarde demais.</p>
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import SEO from '../../components/SEO';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
import {
|
||||
@@ -206,10 +205,8 @@ export default function ContabilidadePage() {
|
||||
|
||||
return (
|
||||
<div ref={pageRef} className="min-h-screen bg-[#0e0e0e]">
|
||||
<SEO
|
||||
title="TI para Escritorios de Contabilidade"
|
||||
description="Solucoes de TI especializadas para contabilidades: seguranca de dados fiscais, backup de obrigacoes, NF-e. SPED e ECD."
|
||||
/>
|
||||
<title>TI para Escritorios Contabeis | Avanzato Tecnologia</title>
|
||||
<meta name="description" content="TI especializada para escritorios contabeis. Seguranca para SPED, backup de dados, servidor otimizado e suporte tecnico especializado." />
|
||||
|
||||
<section className="relative min-h-[90vh] flex items-center bg-[#0e0e0e]">
|
||||
<div className="absolute inset-0 bg-[url('https://images.unsplash.com/photo-1554224155-8d04cb21cd6c?w=1920&q=80')] bg-cover bg-center opacity-10" />
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -45,10 +44,6 @@ function FormSection() {
|
||||
|
||||
return (
|
||||
<div id="formulario" className="scroll-mt-20">
|
||||
<SEO
|
||||
title="Firewall pfSense Empresarial"
|
||||
description="Implementacao e configuracao de firewall pfSense e OPNsense. Seguranca de rede, VPN, filtro de conteudo."
|
||||
/>
|
||||
<div className="bg-[#1a1a1a] border border-[#333] rounded-2xl p-8 sticky top-24">
|
||||
<h3 className="text-2xl font-bold text-white mb-2">Avaliacao gratuita de firewall</h3>
|
||||
<p className="text-gray-400 mb-6">Analisamos sua rede e indicamos a melhor configuracao de firewall para sua empresa.</p>
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -47,10 +46,6 @@ function FormSection() {
|
||||
|
||||
return (
|
||||
<div id="formulario" className="scroll-mt-20">
|
||||
<SEO
|
||||
title="Monitoramento Empresarial com CFTV"
|
||||
description="Sistemas de CFTV e monitoramento por camera para empresas. IP cameras, NVR, DVR, acesso remoto via celular."
|
||||
/>
|
||||
<div className="bg-[#1a1a1a] border border-[#333] rounded-2xl p-8 sticky top-24">
|
||||
<h3 className="text-2xl font-bold text-white mb-2">Diagnostico gratuito de CFTV</h3>
|
||||
<p className="text-gray-400 mb-6">Avaliamos sua estrutura e indicamos a melhor solucao de cameras e monitoramento para seu espaco.</p>
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -47,10 +46,6 @@ function FormSection() {
|
||||
|
||||
return (
|
||||
<div id="formulario" className="scroll-mt-20">
|
||||
<SEO
|
||||
title="VoIP Empresarial e PABX IP"
|
||||
description="Telefonia VoIP para empresas: PABX IP, chamadas ilimitadas, integracao com CRM. Reducao de 70% na conta telefonica."
|
||||
/>
|
||||
<div className="bg-[#1a1a1a] border border-[#333] rounded-2xl p-8 sticky top-24">
|
||||
<h3 className="text-2xl font-bold text-white mb-2">Orcamento de PABX VOIP</h3>
|
||||
<p className="text-gray-400 mb-6">Preencha os dados e receba uma proposta de migracao para VOIP em ate 4 horas.</p>
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -40,10 +39,6 @@ const Backup = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Backup Corporativo e Disaster Recovery"
|
||||
description="Backup automatizado em nuvem e local. Disaster Recovery, recuperacao de dados. Protecao contra ransomware."
|
||||
/>
|
||||
{/* Hero */}
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
<div className="absolute top-0 right-0 w-[600px] h-[600px] bg-[#cbf400]/5 rounded-full blur-3xl -translate-y-1/2 translate-x-1/2" />
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -50,10 +49,6 @@ const CloudComputing = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Cloud Computing e Virtualizacao"
|
||||
description="Solucoes em Cloud Computing: AWS, Azure, Google Cloud. Migracao, gestao e otimizacao de infraestrutura em nuvem."
|
||||
/>
|
||||
{/* Hero */}
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
<div className="absolute top-0 right-0 w-[600px] h-[600px] bg-[#cbf400]/5 rounded-full blur-3xl -translate-y-1/2 translate-x-1/2" />
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -34,10 +33,6 @@ const Consultoria = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Consultoria em TI"
|
||||
description="Consultoria estrategica em tecnologia: planejamento, gestao de projetos, outsourcing de TI. Diagnostico gratuito."
|
||||
/>
|
||||
{/* Hero */}
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
<div className="absolute top-0 right-0 w-[600px] h-[600px] bg-[#cbf400]/5 rounded-full blur-3xl -translate-y-1/2 translate-x-1/2" />
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -39,10 +38,6 @@ const Noc = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="NOC - Network Operations Center"
|
||||
description="Monitoramento 24/7 de redes e servidores. NOC proprio com equipe especializada. Alertas em tempo real."
|
||||
/>
|
||||
{/* Hero */}
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
<div className="absolute top-0 right-0 w-[600px] h-[600px] bg-[#cbf400]/5 rounded-full blur-3xl -translate-y-1/2 translate-x-1/2" />
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -47,10 +46,6 @@ const Pabx = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="PABX IP e VoIP Empresarial"
|
||||
description="Solucoes de telefonia IP e VoIP: PABX virtual, central telefonica, integracao com CRM. Reducao de custos em ate 60%."
|
||||
/>
|
||||
{/* Hero */}
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
<div className="absolute top-0 right-0 w-[600px] h-[600px] bg-[#cbf400]/5 rounded-full blur-3xl -translate-y-1/2 translate-x-1/2" />
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -50,10 +49,6 @@ const Redes = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Redes e Infraestrutura de TI"
|
||||
description="Projetos de rede cabeada e wireless, switches, roteadores Cisco. Infraestrutura completa de TI para empresas."
|
||||
/>
|
||||
{/* Hero */}
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
<div className="absolute top-0 right-0 w-[600px] h-[600px] bg-[#cbf400]/5 rounded-full blur-3xl -translate-y-1/2 translate-x-1/2" />
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -50,10 +49,6 @@ const Seguranca = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Seguranca da Informacao"
|
||||
description="Protecao completa para sua empresa: firewall, antivirus, backup, LGPD. Seguranca de rede e dados com suporte 24/7."
|
||||
/>
|
||||
{/* Hero */}
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
<div className="absolute top-0 right-0 w-[600px] h-[600px] bg-[#cbf400]/5 rounded-full blur-3xl -translate-y-1/2 translate-x-1/2" />
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -39,10 +38,6 @@ const Servidores = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Servidores e Data Center"
|
||||
description="Venda e manutencao de servidores Dell, HP, IBM. Virtualizacao VMware, Hyper-V. Data Center em Guarulhos."
|
||||
/>
|
||||
{/* Hero */}
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
<div className="absolute top-0 right-0 w-[600px] h-[600px] bg-[#cbf400]/5 rounded-full blur-3xl -translate-y-1/2 translate-x-1/2" />
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -47,10 +46,6 @@ const Suporte = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Suporte Tecnico 24/7"
|
||||
description="Suporte tecnico empresarial 24 horas. Help desk, atendimento remoto e presencial em Guarulhos e regiao."
|
||||
/>
|
||||
{/* Hero */}
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
<div className="absolute top-0 right-0 w-[600px] h-[600px] bg-[#cbf400]/5 rounded-full blur-3xl -translate-y-1/2 translate-x-1/2" />
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -83,10 +82,6 @@ const TiGerenciada = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="TI Gerenciada para Empresas"
|
||||
description="TI Gerenciada completa para empresas em Guarulhos e Sao Paulo. Suporte 24/7, monitoramento em tempo real e equipe especializada."
|
||||
/>
|
||||
{/* Hero */}
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
<div className="absolute top-0 right-0 w-[800px] h-[800px] bg-[#cbf400]/5 rounded-full blur-3xl -translate-y-1/2 translate-x-1/3" />
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -78,10 +77,6 @@ const Cisco = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Suporte Redes Cisco"
|
||||
description="Configuracao e suporte Cisco: switches, roteadores, firewalls ASA, Wireless. CCNA e CCNP certificados."
|
||||
/>
|
||||
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(schemaData) }} />
|
||||
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -78,10 +77,6 @@ const Linux = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Suporte Linux para Empresas"
|
||||
description="Suporte Linux empresarial: Ubuntu, CentOS, Red Hat, Debian. Servidores, seguranca, monitoramento. Especialistas certificados."
|
||||
/>
|
||||
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(schemaData) }} />
|
||||
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -78,10 +77,6 @@ const PfSense = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Suporte pfSense e OPNsense"
|
||||
description="Configuracao e suporte pfSense/OPNsense: firewall, VPN, load balancing, HA, multi-WAN. Especialistas certificados."
|
||||
/>
|
||||
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(schemaData) }} />
|
||||
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -78,10 +77,6 @@ const Proxmox = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Suporte Proxmox VE"
|
||||
description="Implementacao e suporte Proxmox VE: virtualizacao, containers LXC, clusters HA, Ceph storage, backups."
|
||||
/>
|
||||
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(schemaData) }} />
|
||||
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -78,10 +77,6 @@ const Sharepoint = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Suporte Microsoft SharePoint"
|
||||
description="Implementacao e suporte SharePoint Online e on-premises: intranet, workflows, gestao documental. Microsoft 365."
|
||||
/>
|
||||
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(schemaData) }} />
|
||||
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -78,10 +77,6 @@ const Vmware = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Suporte VMware vSphere"
|
||||
description="Consultoria e suporte VMware vSphere: ESXi, vCenter, vMotion, HA, DRS. Licenciamento e otimizacao."
|
||||
/>
|
||||
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(schemaData) }} />
|
||||
|
||||
<section ref={heroRef} className="pt-32 pb-20 relative overflow-hidden">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SEO from '../../components/SEO';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { gsap } from 'gsap';
|
||||
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||
@@ -84,10 +83,6 @@ const WindowsServer = () => {
|
||||
|
||||
return (
|
||||
<div className="bg-[#0e0e0e] min-h-screen">
|
||||
<SEO
|
||||
title="Suporte Windows Server"
|
||||
description="Suporte especializado Windows Server 2012, 2016, 2019, 2022. Active Directory, Exchange, IIS. Administracao completa."
|
||||
/>
|
||||
{/* Schema.org JSON-LD */}
|
||||
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(schemaData) }} />
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { useState, useEffect } from 'react';
|
||||
import { Link } from 'react-router-dom';
|
||||
import { Facebook, Youtube, Linkedin, Instagram, ArrowUp, MapPin } from 'lucide-react';
|
||||
import { LOGO, SOCIAL_LINKS, ADDRESSES, FOOTER_LINKS, COMPANY } from '../config/site';
|
||||
@@ -12,15 +11,6 @@ const socialIcons: Record<string, React.ReactNode> = {
|
||||
};
|
||||
|
||||
const Footer = () => {
|
||||
const [version, setVersion] = useState('');
|
||||
|
||||
useEffect(() => {
|
||||
fetch('/version.json?t=' + Date.now())
|
||||
.then(r => r.json())
|
||||
.then(data => setVersion(data.version))
|
||||
.catch(() => setVersion(''));
|
||||
}, []);
|
||||
|
||||
const scrollToTop = () => {
|
||||
window.scrollTo({ top: 0, behavior: 'smooth' });
|
||||
};
|
||||
@@ -171,7 +161,6 @@ const Footer = () => {
|
||||
<div className="flex flex-col md:flex-row items-center justify-between gap-4">
|
||||
<p className="text-gray-500 text-sm">
|
||||
© {new Date().getFullYear()} {COMPANY.name}. Todos os direitos reservados.
|
||||
{version && <span className="ml-2 text-gray-600 text-xs">v{version}</span>}
|
||||
</p>
|
||||
|
||||
<div className="flex items-center gap-6">
|
||||
|
||||
@@ -46,8 +46,14 @@ const Navigation = () => {
|
||||
<div className="container-custom">
|
||||
<div className="flex items-center justify-between h-20">
|
||||
{/* Logo - importado de config/site.ts */}
|
||||
<Link to={LOGO.href} className="flex items-center">
|
||||
<Link to={LOGO.href} className="flex items-center gap-3">
|
||||
{renderLogo()}
|
||||
{LOGO.text && (
|
||||
<span className="text-2xl font-bold text-white tracking-tight">
|
||||
{LOGO.text}
|
||||
<span className="text-[#cbf400]">{LOGO.textHighlight}</span>
|
||||
</span>
|
||||
)}
|
||||
</Link>
|
||||
|
||||
{/* Desktop Navigation - importado de config/site.ts */}
|
||||
|
||||
Reference in New Issue
Block a user