import { FC, useEffect, useState } from "react"; import { cn } from "@/lib/utils"; import { Dialog, DialogContent, DialogTrigger } from "../ui/dialog"; import useEmblaCarousel from "embla-carousel-react"; import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react"; interface Props { name: string; biography: string; className?: string; achievements: { ru: string; en: string; }[]; image: { path: string }; images: { path: string }[]; } export const DesignerCard: FC = ({ className, name, achievements, biography, image, images, }) => { const [emblaRef, emblaApi] = useEmblaCarousel({}); const [canScrollPrev, setCanScrollPrev] = useState(false); const [canScrollNext, setCanScrollNext] = useState(false); useEffect(() => { if (!emblaApi) return; const onSelect = () => { setCanScrollPrev(emblaApi.canScrollPrev()); setCanScrollNext(emblaApi.canScrollNext()); }; emblaApi.on("select", onSelect); onSelect(); return () => { emblaApi.off("select", onSelect); }; }, [emblaApi]); return (
{name}

{name}

    {achievements.slice(0, 7).map((item, i) => (
  • {item.ru}
  • ))}
{name}


Работы дизайнера

{canScrollPrev && ( canScrollPrev && emblaApi?.scrollPrev()} className={cn( "cursor-pointer", !canScrollPrev && "opacity-20" )} /> )}
{images.map((item) => ( ))}
{canScrollNext && ( canScrollPrev && emblaApi?.scrollNext()} className={cn( "cursor-pointer", !canScrollNext && "opacity-20" )} /> )}
); };