"use client"; import { useEffect } from "react"; import { CollectionLink } from "../CollectionLink/CollectionLink"; import { AddCollectionLink } from "../AddCollectionLink/AddCollectionLink"; import Link from "next/link"; import Styles from "./CollectionCourusel.module.css"; import Swiper from "swiper"; import "swiper/css"; import "swiper/css/navigation"; import { Navigation } from "swiper/modules"; export const CollectionCourusel = (props: { sectionTitle: string; showAllLink?: string; content: any; isMyCollections?: boolean; }) => { useEffect(() => { const options: any = { direction: "horizontal", spaceBetween: 8, allowTouchMove: true, slidesPerView: "auto", navigation: { enabled: false, nextEl: ".swiper-button-next", prevEl: ".swiper-button-prev", }, breakpoints: { 450: { navigation: { enabled: true, }, }, }, modules: [Navigation], }; new Swiper(".swiper", options); }, []); return ( <section className={`${Styles.section}`}> <div className="flex justify-between px-4 py-2 border-b-2 border-black dark:border-white"> <h1 className="font-bold text-md sm:text-xl md:text-lg xl:text-xl"> {props.sectionTitle} </h1> {props.showAllLink && ( <Link href={props.showAllLink}> <div className="flex items-center"> <p className="hidden text-xl font-bold sm:block">Показать все</p> <span className="w-6 h-6 iconify mdi--arrow-right"></span> </div> </Link> )} </div> <div className="m-4"> <div className="swiper"> <div className="swiper-wrapper"> {props.isMyCollections && ( <div className="swiper-slide" style={{ width: "fit-content" }}> <div className="xl:w-[600px] sm:w-[400px] w-[80vw] aspect-video"> <AddCollectionLink /> </div> </div> )} {props.content.map((collection) => { return ( <div className="swiper-slide" key={collection.id} style={{ width: "fit-content" }} > <div className="xl:w-[600px] sm:w-[400px] w-[80vw] aspect-video"> <CollectionLink {...collection} /> </div> </div> ); })} </div> <div className={`swiper-button-prev ${Styles["swiper-button"]} after:iconify after:material-symbols--chevron-left aspect-square bg-black bg-opacity-25 backdrop-blur rounded-full after:bg-white`} style={ { "--swiper-navigation-size": "64px" } as React.CSSProperties } ></div> <div className={`swiper-button-next ${Styles["swiper-button"]} after:iconify after:material-symbols--chevron-right aspect-square bg-black bg-opacity-25 backdrop-blur rounded-full after:bg-white`} style={ { "--swiper-navigation-size": "64px" } as React.CSSProperties } ></div> </div> </div> </section> ); };