import clsx from 'clsx'; import { LandingAvatar, SocialProofItem, } from '@/components/landing/social-proof/LandingAvatar'; import { LandingRating } from '@/components/landing/rating/LandingRating'; const getFormattedNumberOfUsers = (numberOfUsers: number) => { if (numberOfUsers >= 500000) { return `${(numberOfUsers / 500000).toFixed(0)}M`; } if (numberOfUsers >= 1000) { return `${(numberOfUsers / 1000).toFixed(0)}k`; } return `${numberOfUsers}`; }; /** * Shows social proof with avatars, number of users and an optional rating. * * Use this to show proof of existing, happy customers & increase trust. */ export const LandingSocialProof = ({ children, className, avatarItems, numberOfUsers = 169, suffixText = 'happy users', showRating, disableAnimation, size = 'medium', }: { children?: React.ReactNode; className?: string; avatarItems: SocialProofItem[]; numberOfUsers: number; suffixText?: string; showRating?: boolean; disableAnimation?: boolean; size?: 'small' | 'medium' | 'large'; }) => { const numberText = getFormattedNumberOfUsers(numberOfUsers); return (
{avatarItems.map((avatarItem, index) => ( 3 ? `-ml-6` : '', )} /> ))}
{numberText}+
{showRating ? : null} {!children ? (

from {numberText}+ {suffixText}

) : ( children )}
); };