6ede33ccdb
Build and Push Docker Images / create_manifest (web, surfsense-web, , cpu) (push) Has been cancelled
Build and Push Docker Images / finalize_release (push) Has been cancelled
Obsidian Plugin Lint / lint (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, cpu, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64, , runner, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, cpu, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64, , runner, false, cpu) (push) Has been cancelled
Build and Push Docker Images / compute_version (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cpu, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, , production, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cpu, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, , production, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu126, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, -cuda126, production, true, cuda126) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu126, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, -cuda126, production, true, cuda126) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu128, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, -cuda, production, true, cuda) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu128, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, -cuda, production, true, cuda) (push) Has been cancelled
Build and Push Docker Images / verify_digests (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, , cpu) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, -cuda, cuda) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, -cuda126, cuda126) (push) Has been cancelled
25 lines
808 B
TypeScript
25 lines
808 B
TypeScript
"use client";
|
|
|
|
import { type ComponentPropsWithoutRef, forwardRef, type WheelEvent } from "react";
|
|
|
|
export type NestedScrollProps = ComponentPropsWithoutRef<"div">;
|
|
|
|
export const NestedScroll = forwardRef<HTMLDivElement, NestedScrollProps>(
|
|
({ onWheel, ...props }, ref) => {
|
|
const handleWheel = (event: WheelEvent<HTMLDivElement>) => {
|
|
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 <div ref={ref} onWheel={handleWheel} {...props} />;
|
|
}
|
|
);
|
|
|
|
NestedScroll.displayName = "NestedScroll";
|