diff options
| author | gantiro <gantiro396@gmail.com> | 2025-07-15 22:51:38 +0700 |
|---|---|---|
| committer | gantiro <gantiro396@gmail.com> | 2025-07-15 22:51:38 +0700 |
| commit | b266678fe4bb8c4053688fd037693fa2f930ac14 (patch) | |
| tree | 89a8c3b7a151a42fecfc480b440c55fce79252da /apps/web/src/components/editor/timeline-canvas/timeline-canvas-ruler-wrapper.tsx | |
| parent | 1f95bb98d6108a5fa059e0f9a08c98e5bdb72c08 (diff) | |
| download | opencut-b266678fe4bb8c4053688fd037693fa2f930ac14.tar.gz | |
Optimize timeline performance
Diffstat (limited to 'apps/web/src/components/editor/timeline-canvas/timeline-canvas-ruler-wrapper.tsx')
| -rw-r--r-- | apps/web/src/components/editor/timeline-canvas/timeline-canvas-ruler-wrapper.tsx | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/apps/web/src/components/editor/timeline-canvas/timeline-canvas-ruler-wrapper.tsx b/apps/web/src/components/editor/timeline-canvas/timeline-canvas-ruler-wrapper.tsx new file mode 100644 index 00000000..c0efc19e --- /dev/null +++ b/apps/web/src/components/editor/timeline-canvas/timeline-canvas-ruler-wrapper.tsx @@ -0,0 +1,24 @@ +import { TimelineCanvasRulerWrapperProps } from "@/types/timeline"; +import React, { forwardRef } from "react"; + +/** + * Wrapper div around the canvas-based timeline ruler. + * Captures mouse events for scrubbing and ensures pointer events are properly enabled. + */ +const TimelineCanvasRulerWrapper = forwardRef< + HTMLDivElement, + TimelineCanvasRulerWrapperProps +>(({ children, onMouseDown, className = "" }, ref) => { + return ( + <div + ref={ref} + className={`relative overflow-hidden h-5 w-full select-none cursor-pointer ${className}`} + onMouseDown={onMouseDown} + data-ruler-wrapper + > + {children} + </div> + ); +}); + +export default TimelineCanvasRulerWrapper; |
