import { Gauge } 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 RateStretchHandleProps { clip: TimelineClip isHovered: boolean isActive: boolean timeScale: number onRateStretchStart?: (edge: "start" | "end", mouseX: number) => void } export function RateStretchHandle({ clip, isHovered, isActive, timeScale, onRateStretchStart, }: RateStretchHandleProps) { const { editMode } = useEditModeContext() // Only show handles in rate stretch mode when hovering if (!isHovered || editMode !== EDIT_MODES.RATE) { return null } const clipWidth = clip.duration * timeScale const clipLeft = clip.startTime * timeScale const currentRate = clip.playbackRate || 1.0 return ( <> {/* Rate indicator */}
{(currentRate * 100).toFixed(0)}%
{/* Start handle */}
{ e.stopPropagation() onRateStretchStart?.("start", e.clientX) }} >

Rate Stretch (R)

Drag to change speed

{/* End handle */}
{ e.stopPropagation() onRateStretchStart?.("end", e.clientX) }} >

Rate Stretch (R)

Drag to change speed

{/* Visual speed indication */} {currentRate !== 1.0 && (
1.0 ? "border-orange-500/30" : "border-blue-500/30", )} />
)} ) }