import { LazyMotion, domAnimation, m, useInView } from 'framer-motion' import { ArrowUpRight } from 'lucide-react' import { useTheme } from 'next-themes' import Image from 'next/image' import Link from 'next/link' import { useRouter } from 'next/router' import { useRef } from 'react' import SectionContainer from '~/components/Layouts/SectionContainer' import CustomersVisual from '~/components/Products/VectorAI/CustomersVisual' import { INITIAL_BOTTOM, getAnimation } from '~/lib/animations' interface Customer { type?: string avatar?: string author?: string role?: string target?: string quote?: string | React.ReactNode abstract?: string image?: string url?: string logo?: string customer?: string } interface Card { customer: any index: number } interface Props { title: string | React.ReactNode customers: Customer[] } const CustomerQuotesSection = (props: Props) => { const { basePath } = useRouter() const ref = useRef(null) const isInView = useInView(ref, { margin: '-25%', once: true }) const Card = ({ customer, index }: Card) => { const { resolvedTheme } = useTheme() const logo = `/images/customers/logos/${!resolvedTheme?.includes('dark') ? '' : 'light/'}${ customer.customer }.png` const initial = INITIAL_BOTTOM const animate = getAnimation({ delay: index * 0.1 }) return (
{`Supabase
{customer.quote}

{customer.author}, {customer.role}

{customer.url && (
Read Customer Story
)}
) } return (

{props.title}

{props.customers.map((customer, i: number) => ( ))}
) } export default CustomerQuotesSection