Skip to main content

FlashReels props

PropTypeDefaultDescription
dataT extends ReelData[]Feed items (id, videoUri, optional posterUri, duration, qualities, prefetchPriority)
mutedbooleanControlled mute
defaultMutedbooleantrueUncontrolled default
onMuteChange(muted: boolean) => voidMute changes
loopbooleantrueLoop active video
onLike(item, index) => voidFired on double-tap like
onDoubleTap(item, index) => voidFired on double-tap
onIndexChange(index: number) => voidActive reel changed
renderOverlay(item, meta) => ReactNodePer-item overlay slot
renderVideo(item, meta) => ReactNodeSwap video engine
likeIconReactNodebuilt-in heartDouble-tap heart
preloadWindowSizenumber1Neighbors that keep a real video source (decoder cap)
prefetchEnabledbooleanfalseWarm posters + tiny video Range requests (no extra decoders)
prefetchWindowSizenumber2How far to prefetch beyond the active index
prefetchStrategy'symmetric' | 'directional''directional'Prefetch layout; directional biases ahead of scroll
showPosterUntilReadybooleanfalseKeep posterUri over video until first frame (built-in player)
posterBlurRadiusnumber0Blur on poster while waiting / outside decoder window
initialQuality'auto' | 'low' | 'high''auto'Which qualities rung to play first (auto = lowest)
resolveVideoUri(item: T) => stringOverride URI selection
videoCacheEnabledbooleanfalseOpt-in RN Video disk cache (default 100 MB). Ignored with renderVideo
bufferConfigVideoBufferConfigBuilt-in player buffer / ABR / cacheSizeMB
showProgressBarbooleanfalseBottom progress bar (built-in player). Pass duration on each item — see Usage
progressBarStyleViewStyleProgress bar track style
onEndReached() => voidNear end of feed — parent appends pages
onEndReachedThresholdnumber0.5How close to the end before onEndReached
ListFooterComponentReactElement | nullOptional load-more footer
refreshingbooleanfalseControlled pull-to-refresh spinner
onRefresh() => voidEnables pull-to-refresh
showBufferingLoaderbooleanfalseBuilt-in buffering spinner (built-in player only)
renderBufferingLoader() => ReactNodeCustom buffering UI (replaces default)
containerStyleViewStyleOuter container
videoStyleViewStyleDefault video style

Ref methods

MethodDescription
scrollToIndex(index)Scroll to a reel
play()Clear global pause
pause()Pause the active reel globally

MuteButton

Optional pre-built mute toggle. Use it inside renderOverlay (or any child of FlashReels). You can also build your own with useFlashReels.