use-track-events
Utility hook for handling pointer events on slider tracks.
Installation
npx shadcn add @limeplay/use-track-eventsUsage
Used internally by timeline-control and volume-control. Can be used to build custom sliders:
import { useTrackEvents } from "@/hooks/limeplay/use-track-events"
function CustomSlider() {
const trackEvents = useTrackEvents({
orientation: "horizontal",
onPointerDown: (progress, event) => {
console.log("Clicked at:", progress) // 0-1
},
onPointerMove: (progress, isPointerDown, event) => {
if (isPointerDown) {
console.log("Dragging at:", progress)
}
},
})
return (
<div
className="relative h-2 w-full bg-gray-200"
onPointerDown={trackEvents.onPointerDown}
onPointerMove={trackEvents.onPointerMove}
onPointerUp={trackEvents.onPointerUp}
onPointerOut={trackEvents.onPointerOut}
>
<div className="absolute h-4 w-4 rounded-full bg-blue-500" />
</div>
)
}Options
| Option | Type | Description |
|---|---|---|
orientation | "horizontal" | "vertical" | Slider direction |
onPointerDown | (progress, event) => void | Click/touch start |
onPointerMove | (progress, isPointerDown, event) => void | Move/drag |
onPointerUp | (event) => void | Release |
onPointerOut | (event) => void | Pointer leaves |
progress is a normalized value (0–1) based on pointer position within the track element.