"use client"; import { useTranslation } from "@turbostarter/i18n"; import { cn } from "@turbostarter/ui"; import { useBreakpoint } from "@turbostarter/ui-web"; import { Avatar, AvatarFallback, AvatarImage, } from "@turbostarter/ui-web/avatar"; import { Icons } from "@turbostarter/ui-web/icons"; import { Marquee } from "@turbostarter/ui-web/marquee"; import { Section, SectionDescription, SectionHeader, } from "~/modules/marketing/layout/section"; import { SectionBadge } from "~/modules/marketing/layout/section"; import { SectionTitle } from "~/modules/marketing/layout/section"; const reviews = [ { name: "testimonials.reviews.jack.name", body: "testimonials.reviews.jack.body", img: "https://avatar.vercel.sh/jack", position: "testimonials.reviews.jack.position", }, { name: "testimonials.reviews.jill.name", body: "testimonials.reviews.jill.body", img: "https://avatar.vercel.sh/jill", position: "testimonials.reviews.jill.position", }, { name: "testimonials.reviews.john.name", body: "testimonials.reviews.john.body", img: "https://avatar.vercel.sh/john", position: "testimonials.reviews.john.position", }, { name: "testimonials.reviews.sarah.name", body: "testimonials.reviews.sarah.body", img: "https://avatar.vercel.sh/sarah", position: "testimonials.reviews.sarah.position", }, { name: "testimonials.reviews.mike.name", body: "testimonials.reviews.mike.body", img: "https://avatar.vercel.sh/mike", position: "testimonials.reviews.mike.position", }, ] as const; type Review = (typeof reviews)[number]; export const Testimonials = () => { const { t } = useTranslation("marketing"); const isDesktop = useBreakpoint("md"); const rows = isDesktop ? [reviews.slice(0, reviews.length / 2), reviews.slice(reviews.length / 2)] : [reviews]; return ( {t("testimonials.label")} {t("testimonials.title")} {t("testimonials.description")} {Array.from({ length: 5 }).map((_, index) => ( ))} {t("testimonials.rating", { rating: 4.9, count: reviews.length, })} {rows.map((row, index) => ( {row.map((review) => ( ))} ))} ); }; const ReviewCard = ({ img, name, position, body }: Review) => { const { t } = useTranslation("marketing"); return ( {t(name).slice(0, 2)} {t(name)} {t(position)} {t(body)} ); };
{t("testimonials.rating", { rating: 4.9, count: reviews.length, })}
{t(position)}
{t(body)}