import { useEffect, useRef, useState } from 'react'; import { gsap } from 'gsap'; import { ScrollTrigger } from 'gsap/ScrollTrigger'; import { ArrowRight, Server, Cloud, Shield, Headphones, Network, Phone, HardDrive, Cpu, ClipboardCheck, Monitor } from 'lucide-react'; gsap.registerPlugin(ScrollTrigger); interface Service { id: number; title: string; description: string; image: string; icon: React.ReactNode; features: string[]; link: string; } const services: Service[] = [ { id: 1, title: 'TI Gerenciada', description: 'Monitoramento 24/7 de toda sua infraestrutura. Foco no seu negócio enquanto cuidamos da sua tecnologia.', image: '/service-ti.png', icon: , features: ['Monitoramento proativo', 'Gestão de infraestrutura', 'Backup automatizado', 'Relatórios mensais'], link: '/servicos/ti-gerenciada', }, { id: 2, title: 'Cloud Computing', description: 'Migração e gestão de ambientes em nuvem. Escalabilidade e segurança para seu crescimento.', image: '/service-cloud.png', icon: , features: ['Migração para nuvem', 'AWS/Azure/GCP', 'Otimização de custos', 'Arquitetura serverless'], link: '/servicos/cloud-computing', }, { id: 3, title: 'Segurança', description: 'Proteção contra ameaças digitais. Segurança de ponta a ponta para seus dados e sistemas.', image: '/service-security.png', icon: , features: ['Firewall gerenciado', 'Antivírus corporativo', 'VPN segura', 'Auditoria de segurança'], link: '/servicos/seguranca', }, { id: 4, title: 'Suporte Técnico', description: 'Atendimento ágil para seus colaboradores. Resolução rápida de problemas técnicos.', image: '/service-support.png', icon: , features: ['Help desk 24/7', 'Suporte remoto', 'Atendimento presencial', 'Base de conhecimento'], link: '/servicos/suporte', }, { id: 5, title: 'Infraestrutura de Redes', description: 'Redes corporativas seguras, rápidas e escaláveis. Cabeamento e configuração profissional.', image: '/service-ti.png', icon: , features: ['Cabeamento estruturado', 'Wi-Fi corporativo', 'VLANs', 'Switches gerenciáveis'], link: '/servicos/redes', }, { id: 6, title: 'PABX em Nuvem', description: 'Telefonia IP moderna e econômica. Reduza custos e modernize sua comunicação.', image: '/service-support.png', icon: , features: ['Ramais remotos', 'URA', 'Gravação de chamadas', 'Integração CRM'], link: '/servicos/pabx', }, { id: 7, title: 'Backup Corporativo', description: 'Proteção total contra perda de dados. Backup em nuvem e recuperação de desastres.', image: '/service-cloud.png', icon: , features: ['Backup automático', 'Proteção ransomware', 'Recuperação rápida', 'DRaaS'], link: '/servicos/backup', }, { id: 8, title: 'Servidores', description: 'Implantação e virtualização de servidores. Alta performance e disponibilidade.', image: '/service-ti.png', icon: , features: ['Virtualização', 'Servidor de arquivos', 'Alta disponibilidade', 'Redução de custos'], link: '/servicos/servidores', }, { id: 9, title: 'Consultoria em TI', description: 'Planejamento estratégico tecnológico. Diagnóstico e roadmap para sua empresa.', image: '/about-image.jpg', icon: , features: ['Diagnóstico', 'Planejamento', 'Auditoria', 'Roadmap estratégico'], link: '/servicos/consultoria', }, { id: 10, title: 'Monitoramento e NOC', description: 'Visibilidade total da sua infraestrutura. Monitoramento 24/7 com alertas em tempo real.', image: '/service-ti.png', icon: , features: ['Monitoramento 24/7', 'Alertas em tempo real', 'Painéis personalizados', 'Prevenção de falhas'], link: '/servicos/noc', }, ]; const ServiceCard = ({ service }: { service: Service }) => { const cardRef = useRef(null); const [mousePos, setMousePos] = useState({ x: 0, y: 0 }); const [isHovered, setIsHovered] = useState(false); const handleMouseMove = (e: React.MouseEvent) => { if (!cardRef.current) return; const rect = cardRef.current.getBoundingClientRect(); const x = (e.clientX - rect.left - rect.width / 2) / 20; const y = (e.clientY - rect.top - rect.height / 2) / 20; setMousePos({ x, y }); }; // Gerar caminho WebP com fallback PNG/JPG const webpImage = service.image.replace(/\.(png|jpg|jpeg)$/, '.webp'); return (
setIsHovered(true)} onMouseLeave={() => { setIsHovered(false); setMousePos({ x: 0, y: 0 }); }} > {/* Image container com WebP + lazy loading */}
{service.title} {/* Icon badge */}
{service.icon}
{/* Gradient overlay on hover */}
{/* Content */}

{service.title}

{service.description}

{/* Features list */}
    {service.features.slice(0, 3).map((feature, i) => (
  • {feature}
  • ))}
{/* CTA */} Saiba mais
{/* Glow border effect */}
); }; const Services = () => { const sectionRef = useRef(null); const titleRef = useRef(null); const cardsRef = useRef(null); useEffect(() => { const ctx = gsap.context(() => { gsap.fromTo( titleRef.current, { y: 50, opacity: 0 }, { y: 0, opacity: 1, duration: 0.8, ease: 'expo.out', scrollTrigger: { trigger: titleRef.current, start: 'top 80%', toggleActions: 'play none none reverse', }, } ); const cards = cardsRef.current?.querySelectorAll('.service-card-border'); if (cards) { gsap.fromTo( cards, { y: 100, opacity: 0 }, { y: 0, opacity: 1, duration: 0.8, stagger: 0.08, ease: 'expo.out', scrollTrigger: { trigger: cardsRef.current, start: 'top 80%', toggleActions: 'play none none reverse', }, } ); } }, sectionRef); return () => ctx.revert(); }, []); return (
{/* Background decoration */}
{/* Section header */}
Nossas Soluções

Serviços completos em{' '} Tecnologia

Oferecemos soluções integradas para transformar a infraestrutura de TI da sua empresa em um diferencial competitivo.

{/* Services grid */}
{services.map((service) => ( ))}
{/* Bottom CTA */}

Precisa de uma solução personalizada?

Fale com um consultor
); }; export default Services;