'use client';import React, { useEffect, useRef, useState } from 'react' import { useState } from 'react';interface Testimonial { text: string; author: string } const testimonials = [const testimonials: Testimonial[] = [ { { text: 'Esta probablemente sea la plataforma de transmisión más fácil de usar que conozco...', author: 'Bomeca Trotter' }, id: 1, { text: 'Uso AvanzaCast desde hace mucho tiempo y sigo eligiéndolo...', author: 'Krissy Buck' }, name: 'María González', { text: 'Hace dos años que uso este sistema y me encanta!', author: 'Joy Ann Lajeret' }, role: 'Content Creator', { text: 'La integración con múltiples plataformas es perfecta...', author: 'Carlos Mendoza' }, company: '@MariaStreams', { text: 'Como creadora de contenido, necesitaba una herramienta confiable...', author: 'María González' } avatar: '👩‍💼',] rating: 5, comment:export default function TestimonialsSection() { 'AvanzaCast transformó completamente mi forma de hacer streaming. Antes necesitaba software complicado y equipos caros. Ahora transmito en 4K a YouTube, Twitch y Facebook simultáneamente desde mi navegador.', const scrollRef = useRef(null) stats: { streams: 250, viewers: '50K+' }, const [isAutoPlay, setIsAutoPlay] = useState(true) videoThumb: '🎬', const multiplier = 12 }, const duplicatedTestimonials = Array.from({ length: multiplier }, () => testimonials).flat() { id: 2, const scrollLeft = () => { if (scrollRef.current) scrollRef.current.scrollBy({ left: -400, behavior: 'smooth' }) } name: 'Carlos Ramírez', const scrollRight = () => { if (scrollRef.current) scrollRef.current.scrollBy({ left: 400, behavior: 'smooth' }) } role: 'CEO', company: 'TechStartup Inc.', useEffect(() => { avatar: '👨‍💻', if (scrollRef.current) { rating: 5, const singleSetWidth = testimonials.length * 400 comment: const middleStart = singleSetWidth * Math.floor(multiplier / 2) 'Para nuestros webinars corporativos, AvanzaCast es indispensable. La calidad de video es impecable, podemos invitar hasta 10 participantes remotos y el chat unificado nos permite interactuar con audiencias de múltiples plataformas.', scrollRef.current.scrollLeft = middleStart stats: { streams: 120, viewers: '100K+' }, } videoThumb: '📹', }, []) }, { useEffect(() => { id: 3, if (!isAutoPlay || !scrollRef.current) return name: 'Ana Martínez', const interval = setInterval(() => scrollRight(), 4000) role: 'Educadora Online', return () => clearInterval(interval) company: 'Academia Digital', }, [isAutoPlay]) avatar: '👩‍🏫', rating: 5, useEffect(() => { comment: let scrollTimeout: any 'Mis clases en vivo han mejorado increíblemente. Los estudiantes pueden unirse desde cualquier plataforma y la grabación automática en la nube me permite crear contenido on-demand sin esfuerzo adicional.', const container = scrollRef.current stats: { streams: 300, viewers: '25K+' }, const handleScroll = () => { videoThumb: '🎓', if (!container) return }, const singleSetWidth = testimonials.length * 400 ]; const totalWidth = singleSetWidth * multiplier const middleStart = singleSetWidth * Math.floor(multiplier / 2) export default function TestimonialsSection() { const tolerance = 100 const [activeTestimonial, setActiveTestimonial] = useState(0); requestAnimationFrame(() => { if (container.scrollLeft <= tolerance) container.scrollLeft = middleStart return ( else if (container.scrollLeft >= totalWidth - container.clientWidth - tolerance) container.scrollLeft = middleStart
})
}
if (container) { const debounced = () => { clearTimeout(scrollTimeout); scrollTimeout = setTimeout(handleScroll, 150) } container.addEventListener('scroll', debounced, { passive: true }) return () => { container.removeEventListener('scroll', debounced as any); clearTimeout(scrollTimeout) } Lo que Dicen Nuestros Usuarios } }, [])

Historias de Éxito Reales return (

Miles de creadores, empresas y educadores confían en AvanzaCast para sus transmisiones en vivo

Ya se crearon más de 60 millones de transmisiones y grabaciones en AvanzaCast

{/* Main Testimonial Showcase */}
{/* Video Demo Preview */}
setIsAutoPlay(false)} onMouseLeave={() => setIsAutoPlay(true)}> {testimonials[activeTestimonial].videoThumb} {duplicatedTestimonials.map((testimonial, index) => {
const setNumber = Math.floor(index / testimonials.length)

{testimonial.author}

) {/* Stats Badge */} })}

{testimonials[activeTestimonial].stats.streams}

<>

Pausar auto-scroll {testimonials[activeTestimonial].stats.viewers}

) : (

Viewers

<>
Reanudar auto-scroll
)} {/* Testimonial Content */}
{[...Array(testimonials[activeTestimonial].rating)].map((_, i) => (
))}

"{testimonials[activeTestimonial].comment}"

{testimonials[activeTestimonial].avatar}

{testimonials[activeTestimonial].name}

{testimonials[activeTestimonial].role}

{testimonials[activeTestimonial].company}

{/* Testimonial Selector */}
{testimonials.map((testimonial, index) => ( ))}
{/* Trust Indicators */}
{[ { value: '50K+', label: 'Usuarios Activos' }, { value: '2M+', label: 'Horas Transmitidas' }, { value: '4.9/5', label: 'Rating Promedio' }, { value: '99.9%', label: 'Uptime Garantizado' }, ].map((stat, i) => (

{stat.value}

{stat.label}

))}
); }