"use client"; import { TimelineTrack } from "@/types/timeline"; import { TIMELINE_CONSTANTS, getTotalTracksHeight, } from "@/constants/timeline-constants"; import { useTimelinePlayhead } from "@/hooks/use-timeline-playhead"; interface TimelinePlayheadProps { currentTime: number; duration: number; zoomLevel: number; tracks: TimelineTrack[]; seek: (time: number) => void; rulerRef: React.RefObject; rulerScrollRef: React.RefObject; tracksScrollRef: React.RefObject; } export function TimelinePlayhead({ currentTime, duration, zoomLevel, tracks, seek, rulerRef, rulerScrollRef, tracksScrollRef, }: TimelinePlayheadProps) { const { playheadPosition, handlePlayheadMouseDown } = useTimelinePlayhead({ currentTime, duration, zoomLevel, seek, rulerRef, rulerScrollRef, tracksScrollRef, }); return ( <> {/* Playhead in ruler (scrubbable) */}
); } interface TimelinePlayheadTracksProps { currentTime: number; duration: number; zoomLevel: number; tracks: TimelineTrack[]; seek: (time: number) => void; rulerRef: React.RefObject; rulerScrollRef: React.RefObject; tracksScrollRef: React.RefObject; } export function TimelinePlayheadTracks({ currentTime, duration, zoomLevel, tracks, seek, rulerRef, rulerScrollRef, tracksScrollRef, }: TimelinePlayheadTracksProps) { const { playheadPosition, handlePlayheadMouseDown } = useTimelinePlayhead({ currentTime, duration, zoomLevel, seek, rulerRef, rulerScrollRef, tracksScrollRef, }); if (tracks.length === 0) return null; return (
); } // Also export a hook for getting ruler handlers export function useTimelinePlayheadRuler({ currentTime, duration, zoomLevel, seek, rulerRef, rulerScrollRef, tracksScrollRef, }: Omit) { const { handleRulerMouseDown, isDraggingRuler } = useTimelinePlayhead({ currentTime, duration, zoomLevel, seek, rulerRef, rulerScrollRef, tracksScrollRef, }); return { handleRulerMouseDown, isDraggingRuler }; } export { TimelinePlayhead as default };