import { motion } from 'framer-motion' import Image from 'next/image' import Link from 'next/link' import { useBreakpoint } from 'common/hooks/useBreakpoint' import { UserData } from '../hooks/use-conf-data' interface Props { loadedUsers: UserData[] isLoading: boolean pageCount: number offset: number } export default function TicketsGrid({ loadedUsers, isLoading, pageCount, offset }: Props) { const STORAGE_URL = 'https://obuldanrptloktxcffvn.supabase.co/storage/v1/object/public/images/lw7' const BUCKET_FOLDER_VERSION = 'v3' const getOgUrl = (username: string, isGold: boolean) => `${STORAGE_URL}/tickets/gallery/${ isGold ? 'golden' : 'regular' }/${BUCKET_FOLDER_VERSION}/${username}.png` const isMobile = useBreakpoint(768) const isTablet = useBreakpoint(1024) return (
{loadedUsers?.map((user, i) => { const rowTickets = isMobile ? 2 : isTablet ? 3 : 5 const divider = Math.floor(i / rowTickets) const isOddRow = divider % 2 === 0 // Delay should be no more than pageCount for new loaded users const recalculatedDelay = i >= pageCount * 2 ? (i - pageCount * (offset - 1)) / 15 : i / 15 return ( window.scrollTo(0, 0)} legacyBehavior passHref >
{user.username
) })} {isLoading && Array.from({ length: pageCount }, (_, i) => (
))}
) }