use-seek

PreviousNext
Docs
limeplayhook

Preview

Loading preview…
registry/default/hooks/use-seek.ts
import {
  useGetStore,
  useMediaStore,
} from "@/registry/default/ui/media-provider"

export function useSeek() {
  const store = useGetStore()
  const mediaRef = useMediaStore((state) => state.mediaRef)

  function seek(offset: number) {
    if (!mediaRef.current) {
      return
    }

    const media = mediaRef.current
    const newTime = media.currentTime + offset

    media.currentTime = Math.max(0, Math.min(newTime, media.duration || 0))

    store.setState({
      idle: false,
    })
  }

  return {
    seek,
  }
}

Installation

npx shadcn@latest add @limeplay/use-seek

Usage

import { UseSeek } from "@/hooks/use-seek"
const value = UseSeek()