UNPKG

react-vertical-feed

Version:

A React component for creating vertical media feeds (videos) similar to TikTok or Instagram

41 lines (40 loc) 1.58 kB
import React from 'react'; export interface VideoItem { src: string; id?: string; metadata?: Record<string, unknown>; controls?: boolean; autoPlay?: boolean; muted?: boolean; playsInline?: boolean; loop?: boolean; poster?: string; preload?: 'none' | 'metadata' | 'auto'; } export interface VerticalFeedRef { scrollToItem: (index: number, behavior?: ScrollBehavior) => void; getCurrentItem: () => number; } export interface VerticalFeedProps { items: VideoItem[]; onEndReached?: () => void; loadingComponent?: React.ReactNode; errorComponent?: React.ReactNode; className?: string; style?: React.CSSProperties; onItemVisible?: (item: VideoItem, index: number) => void; onItemHidden?: (item: VideoItem, index: number) => void; onItemClick?: (item: VideoItem, index: number) => void; threshold?: number; scrollBehavior?: ScrollBehavior; renderItemOverlay?: (item: VideoItem, index: number) => React.ReactNode; /** Distance from bottom to trigger onEndReached (default: 100) */ endReachedThreshold?: number; /** Callback when video playback fails */ onVideoError?: (item: VideoItem, index: number, error: Error) => void; /** Callback when current visible item changes */ onCurrentItemChange?: (index: number) => void; /** Default preload strategy for videos (default: 'metadata') */ defaultPreload?: 'none' | 'metadata' | 'auto'; } export declare const VerticalFeed: React.ForwardRefExoticComponent<VerticalFeedProps & React.RefAttributes<VerticalFeedRef>>;