import { GripVertical } from "lucide-react" import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip" import { cn } from "@/lib/utils" import { useEditModeContext } from "../../hooks/use-edit-mode" import { TimelineClip } from "../../types" import { EDIT_MODES } from "../../types/edit-modes" interface RollEditHandleProps { leftClip: TimelineClip rightClip: TimelineClip isHovered: boolean isActive: boolean timeScale: number onRollStart?: (mouseX: number) => void } export function RollEditHandle({ leftClip, rightClip, isHovered, isActive, timeScale, onRollStart, }: RollEditHandleProps) { const { editMode } = useEditModeContext() // Only show handle in roll mode when clips are adjacent if (editMode !== EDIT_MODES.ROLL || !isHovered) { return null } // Check if clips are adjacent const leftEnd = leftClip.startTime + leftClip.duration const rightStart = rightClip.startTime const gap = Math.abs(rightStart - leftEnd) // Only show for adjacent clips (small gap tolerance) if (gap > 0.001) { return null } const handlePosition = leftEnd * timeScale return (
{ e.stopPropagation() onRollStart?.(e.clientX) }} > {/* Handle background */}
{/* Handle icon */}
{/* Visual indicators */} {isActive && ( <> {/* Left clip indicator */}
{/* Right clip indicator */}
)}

Roll Edit (W)

Drag to adjust edit point

) }