Limeplay - Open Source Video Player UI ComponentsLimeplay

use-track-events

Utility hook for handling pointer events on slider tracks.

Installation

npx shadcn add @limeplay/use-track-events

Usage

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

OptionTypeDescription
orientation"horizontal" | "vertical"Slider direction
onPointerDown(progress, event) => voidClick/touch start
onPointerMove(progress, isPointerDown, event) => voidMove/drag
onPointerUp(event) => voidRelease
onPointerOut(event) => voidPointer leaves

progress is a normalized value (0–1) based on pointer position within the track element.

On this page