UNPKG

react-scrubber

Version:

React scrubber component with touch controls, styling, and lots event handlers

62 lines (61 loc) 1.96 kB
import React, { Component } from 'react'; type Marker = { start: number; end?: number; className?: string; }; type Tooltip = { enabledOnHover?: boolean; enabledOnScrub?: boolean; className?: string; formatString?: (value: number) => string; }; export type ScrubberProps = { className?: string; value: number; min: number; max: number; bufferPosition?: number; vertical?: boolean; onScrubStart?: (value: number) => void; onScrubEnd?: (value: number) => void; onScrubChange?: (value: number) => void; onMouseMove?: (value: number) => void; onMouseOver?: (value: number) => void; onMouseLeave?: (value: number) => void; tooltip?: Tooltip; markers?: Array<number | Marker>; [key: string]: any; }; type Nullable<T> = T | null; type ScrubberState = { seeking: boolean; mouseX: Nullable<number>; mouseY: Nullable<number>; touchId: Nullable<number>; touchX: Nullable<number>; touchY: Nullable<number>; hover: boolean; }; export declare class Scrubber extends Component<ScrubberProps> { barRef: React.RefObject<HTMLDivElement | null>; state: ScrubberState; componentDidMount(): void; componentWillUnmount(): void; getPositionFromMouseX: () => number; getPositionFromMouseY: () => number; getPositionFromCursor: () => number; handleMouseOver: (e: MouseEvent) => void; handleMouseLeave: (e: MouseEvent) => void; handleMouseMove: (e: MouseEvent) => void; handleTouchMove: (e: TouchEvent) => void; handleSeekStart: (e: React.MouseEvent<HTMLDivElement>) => void; handleTouchStart: (e: React.TouchEvent<HTMLDivElement>) => void; handleSeekEnd: () => void; handleTouchEnd: (e: TouchEvent) => void; renderTooltip: () => React.JSX.Element | undefined; renderMarkers: () => React.JSX.Element[] | null; getValuePercent: (value: number) => string; render(): React.JSX.Element; } export {};