import { useEditor } from "@/hooks/use-editor"; import { TIMELINE_CONSTANTS } from "@/constants/timeline-constants"; import { getSnappedSeekTime } from "@/lib/time"; import { Bookmark02Icon } from "@hugeicons/core-free-icons"; import { HugeiconsIcon } from "@hugeicons/react"; interface TimelineBookmarksRowProps { zoomLevel: number; dynamicTimelineWidth: number; handleWheel: (e: React.WheelEvent) => void; handleTimelineContentClick: (e: React.MouseEvent) => void; handleRulerTrackingMouseDown: (e: React.MouseEvent) => void; handleRulerMouseDown: (e: React.MouseEvent) => void; } export function TimelineBookmarksRow({ zoomLevel, dynamicTimelineWidth, handleWheel, handleTimelineContentClick, handleRulerTrackingMouseDown, handleRulerMouseDown, }: TimelineBookmarksRowProps) { const editor = useEditor(); const activeScene = editor.scenes.getActiveScene(); return (
); } export function TimelineBookmark({ time, zoomLevel, }: { time: number; zoomLevel: number; }) { const editor = useEditor(); const activeProject = editor.project.getActive(); const duration = editor.timeline.getTotalDuration(); const handleBookmarkActivate = ({ event, }: { event: | React.MouseEvent | React.KeyboardEvent; }) => { event.stopPropagation(); const framesPerSecond = activeProject?.settings.fps ?? 30; const snappedTime = getSnappedSeekTime({ rawTime: time, duration, fps: framesPerSecond, }); editor.playback.seek({ time: snappedTime }); }; return ( ); }