diff --git a/app/projects/eternalcore/eternal-showcase.tsx b/app/projects/eternalcore/eternal-showcase.tsx index ba7f57cc..4f19b217 100644 --- a/app/projects/eternalcore/eternal-showcase.tsx +++ b/app/projects/eternalcore/eternal-showcase.tsx @@ -1,11 +1,12 @@ "use client"; -import { AnimatePresence, motion } from "framer-motion"; +import { AnimatePresence, motion, type Transition } from "framer-motion"; import { Maximize2, X } from "lucide-react"; import Image from "next/image"; import { useEffect, useState } from "react"; import { createPortal } from "react-dom"; import { FadeIn } from "@/components/ui/motion/motion-components"; +import { useReducedMotion } from "@/hooks/use-reduced-motion"; const marqueeItems = [ // Row 1: Essentials & Chat @@ -117,29 +118,38 @@ const InfiniteMarquee = ({ items, direction = "left", speed = 40, + prefersReducedMotion, onItemClick, }: { items: typeof marqueeItems; direction?: "left" | "right"; speed?: number; + prefersReducedMotion: boolean; onItemClick: (item: (typeof marqueeItems)[0]) => void; }) => { + const marqueeAnimation = prefersReducedMotion + ? undefined + : { + x: direction === "left" ? ["0%", "-50%"] : ["-50%", "0%"], + }; + const marqueeTransition: Transition | undefined = prefersReducedMotion + ? undefined + : { + duration: speed, + ease: "linear", + repeat: Number.POSITIVE_INFINITY, + repeatType: "loop", + }; + return (