summaryrefslogtreecommitdiff
path: root/apps/web/src/components/editor/timeline-canvas/timeline-canvas-ruler-wrapper.tsx
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2025-07-17 17:22:53 +0200
committerMaze Winther <mazewinther@gmail.com>2025-07-17 17:22:53 +0200
commit4e5e9756c81cb8c8885be652a1dbb56b179c2e04 (patch)
tree6b3f3e246ee326adf3371861610433bb5c711014 /apps/web/src/components/editor/timeline-canvas/timeline-canvas-ruler-wrapper.tsx
parentce47e88e3482a55e4ed4c1c790ce85fd9109a2ee (diff)
parentb97a30824e3d9758850281aa40e64d074126d1cb (diff)
downloadopencut-4e5e9756c81cb8c8885be652a1dbb56b179c2e04.tar.gz
Merge branch 'main' of https://github.com/mazeincoding/AppCut
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.tsx24
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;