"use client"; import { type ComponentPropsWithoutRef, forwardRef, type WheelEvent } from "react"; export type NestedScrollProps = ComponentPropsWithoutRef<"div">; export const NestedScroll = forwardRef( ({ onWheel, ...props }, ref) => { const handleWheel = (event: WheelEvent) => { const el = event.currentTarget; const canScrollUp = el.scrollTop > 0; const canScrollDown = el.scrollTop < el.scrollHeight - el.clientHeight - 1; const goingUp = event.deltaY < 0; const goingDown = event.deltaY > 0; if ((goingUp && canScrollUp) || (goingDown && canScrollDown)) { event.stopPropagation(); } onWheel?.(event); }; return
; } ); NestedScroll.displayName = "NestedScroll";