// Imported from investidor/resources/js/modules/news/sections/about/AboutStory.tsx; original content preserved. import { useState, useEffect, useRef } from 'react'; import { Trans } from './source-text'; const aboutimgstory = '/assets/imgs/aboutimgstory.png'; interface CounterProps { end: number; suffix?: string; } const Counter = ({ end, suffix = '' }: CounterProps) => { const [count, setCount] = useState(0); const countRef = useRef(0); useEffect(() => { const duration = 2000; const increment = end / (duration / 16); const timer = setInterval(() => { countRef.current += increment; if (countRef.current >= end) { clearInterval(timer); countRef.current = end; } setCount(Math.floor(countRef.current)); }, 16); return () => clearInterval(timer); }, [end]); return ( {count} {suffix} ); }; export const AboutStory = () => { const [isVisible, setIsVisible] = useState(false); const [counted, setCounted] = useState(false); const sectionRef = useRef(null); useEffect(() => { const observer = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting) { setIsVisible(true); setCounted(true); } }, { threshold: 0.2 }, ); if (sectionRef.current) { observer.observe(sectionRef.current); } return () => { if (sectionRef.current) { observer.unobserve(sectionRef.current); } }; }, []); return (
{/* Imagem */}
Equipe Tempo { e.currentTarget.src = '/assets/images/info.png'; }} />
{counted ? ( ) : ( '50+' )}
Anos de Experiência
{counted ? ( ) : ( '200+' )}
Projetos Realizados
{/* Texto */}

Somos detentores de um vasto património cultural e tecnológico, resultado da integração e da cooperação entre diversas empresas com ampla experiência nas áreas de Tecnologias de Informação e Comunicação, produção e disseminação de conteúdos informativos, educação vocacional e gestão empresarial.

Dispomos de uma equipa qualificada, com sólida experiência na concepção e implementação de soluções de TI, de cibersegurança, de desenvolvimento institucional, de reengenharia de processos organizacionais e de formação profissional.

); }; export default AboutStory;