import { AnimatePresence, motion } from 'framer-motion' import { RefObject, useCallback, useEffect, useState } from 'react' interface ScrollGradientProps { scrollRef: RefObject className?: string offset?: number // Pixels to offset from bottom before showing gradient } export const ScrollGradient = ({ scrollRef, className = '', offset = 0 }: ScrollGradientProps) => { const [showGradient, setShowGradient] = useState(false) const handleScroll = useCallback(() => { if (!scrollRef.current) return const { scrollTop, scrollHeight, clientHeight } = scrollRef.current const isAtBottom = Math.ceil(scrollTop + clientHeight + offset) >= scrollHeight setShowGradient(!isAtBottom) }, [scrollRef, offset]) useEffect(() => { const container = scrollRef.current if (!container) return container.addEventListener('scroll', handleScroll) handleScroll() // Check initial position return () => container.removeEventListener('scroll', handleScroll) }, [handleScroll]) return ( {showGradient && ( )} ) }