import classNames from "classnames"; import { createBreakpoint } from "react-use"; import { AnimatePresence } from "framer-motion"; import InfiniteScroll from "react-infinite-scroller"; import { Image } from "@/utils/type"; import { useCollections } from "@/components/main/hooks/useCollections"; import { Modal } from "@/components/modal/modal"; import { Collection } from "./collection"; import { CollectionLoading } from "./loading"; import { useCollection } from "@/components/modal/useCollection"; const useBreakpoint = createBreakpoint({ XL: 1280, L: 1024, S: 768, XS: 640 }); export const Collections: React.FC<{ category: string }> = ({ category }) => { const { open, setOpen } = useCollection(); const { images, loading, infiniteRefetch, pagination, infiniteLoading } = useCollections(category); const breakpoint = useBreakpoint(); if (loading) return null; return ( <> { if (infiniteLoading) return; infiniteRefetch(); }} hasMore={pagination?.total_pages > pagination?.page} className="mx-auto grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-5 mt-8 lg:mt-14" > {images?.map((collection: Image, i: number) => collection?.loading ? ( ) : ( ) )} null}> {open !== null && setOpen(null)} />} ); };