'use client'; import { useRef, useState } from 'react'; import { ArrowLeft, ArrowRight, ArrowUpRight } from 'lucide-react'; import Image from 'next/image'; import type { Swiper as SwiperType } from 'swiper'; import { EffectFade, Navigation } from 'swiper/modules'; import { Swiper, SwiperSlide } from 'swiper/react'; import * as Badge from '@/components/ui/badge'; import * as LinkButton from '@/components/ui/link-button'; import 'swiper/swiper.css'; const testimonials = [ { name: 'Arthur Taylor', title: 'Director of Implementation', quote: 'We reduced late payments by 90% after using the smart scheduling tools.', highlight: 'That alone was worth it.', stats: [ { value: '16%', label: 'Faster invoice approvals', }, { value: '22%', label: 'More on-time payments', }, { value: '41%', label: 'Less manual work', }, ], }, { name: 'Sarah Mitchell', title: 'Head of Operations', quote: 'The automation features saved our team over 20 hours per week.', highlight: 'It transformed how we work.', stats: [ { value: '17%', label: 'Faster invoice approvals', }, { value: '22%', label: 'More on-time payments', }, { value: '41%', label: 'Less manual work', }, ], }, { name: 'David Chen', title: 'CFO at TechCorp', quote: 'Invoice management has never been this seamless and efficient.', highlight: 'Our cash flow improved significantly.', stats: [ { value: '16%', label: 'Faster invoice approvals', }, { value: '22%', label: 'More on-time payments', }, { value: '41%', label: 'Less manual work', }, ], }, { name: 'Emily Rodriguez', title: 'Finance Manager', quote: 'The reporting dashboard gives us real-time insights we never had before.', highlight: 'Decision-making is now data-driven.', stats: [ { value: '16%', label: 'Faster invoice approvals', }, { value: '22%', label: 'More on-time payments', }, { value: '41%', label: 'Less manual work', }, ], }, ]; export default function FinanceUserTestimonials() { const swiperRef = useRef(null); const swiperStatsRef = useRef(null); const [isBeginning, setIsBeginning] = useState(true); const [isEnd, setIsEnd] = useState(false); const [activeIndex, setActiveIndex] = useState(0); return (
Real voices from real users

Why people trust us with their money

Thousands of users streamline their finances with Apex every day.

Get started free
{ swiperRef.current = swiper; setIsBeginning(swiper.isBeginning); setIsEnd(swiper.isEnd); }} onSlideChange={(swiper) => { setIsBeginning(swiper.isBeginning); setIsEnd(swiper.isEnd); setActiveIndex(swiper.activeIndex); }} className='relative w-full rounded-t-3xl rounded-b-xl' > testimonials logo testimonials logo
testimonials image testimonials image
{testimonials.map((testimonial, index) => (
{testimonial.name}
{testimonial.title}

{testimonial.quote}{' '} {testimonial.highlight}

))}
{ swiperStatsRef.current = swiper; }} allowTouchMove={false} className='w-full' > {testimonials.map((testimonial, index) => (
{testimonial.stats.map((stat, statIndex) => (
{stat.value}
{stat.label}
))}
))}
); }