// Metro module 8135 (f8136). import { useMemo, useCallback, useEffect, useState } from "react"; import { THUMBNAIL_HEIGHT, THUMBNAIL_MARGIN, THUMBNAIL_MAX_WIDTH, THUMBNAIL_MIN_WIDTH, THUMBNAIL_WIDTH_MARGIN } from "./Constants"; import * as _PlatformUtils from "../../../utils/PlatformUtils"; import * as _ReanimatedRexport from "../../reanimated/ReanimatedRexport"; import { makeMutable, useAnimatedRef, useAnimatedScrollHandler, useDerivedValue, useAnimatedStyle, useSharedValue, useAnimatedReaction } from "../../reanimated/ReanimatedRexport"; import { useMediaViewerDimensions } from "./MediaViewerDimensionsContext"; import useSafeAreaInsets_native from "../../safe_area/useSafeAreaInsets.native"; import { MediaViewerAnalytics, IncrementableMediaViewerActions } from "../MediaViewerAnalyticsManager"; import { lerpVarWidthThumbnailScrollBounds } from "./portraitThumbnailHelpers"; import { flattenSource } from "./MediaSourceUtil"; import * as _spring from "../../../design/animation/reanimated/spring/spring"; const isAndroid = _PlatformUtils.isAndroid(); const __initData = { code: "function useMediaViewerSyncerTsx1(){const{thumbnailsScrolling,SCROLLING_DRAG,swipeSource}=this.__closure;thumbnailsScrolling.set(thumbnailsScrolling.get()|SCROLLING_DRAG);swipeSource.set('thumbnails');}" }; const __initData2 = { code: "function useMediaViewerSyncerTsx2(){const{thumbnailsScrolling,SCROLLING_DRAG}=this.__closure;thumbnailsScrolling.set(thumbnailsScrolling.get()&~SCROLLING_DRAG);}" }; const __initData3 = { code: "function useMediaViewerSyncerTsx3(event){const{variableWidthThumbnailsEnabled,ThumbnailScrollPositions,thumbnailSize,swipeSource,maxIndex,thumbnailsIndex,thumbnailsAnimateTo,selectedIndex,viewerScrolling,thumbnailsScrolling,runOnJS,onSelectedIndexChange}=this.__closure;let thumbnails=0;if(variableWidthThumbnailsEnabled){if(event.contentOffset.x<0){thumbnails=0;}else if(event.contentOffset.x>=ThumbnailScrollPositions[ThumbnailScrollPositions.length-1].end){thumbnails=ThumbnailScrollPositions.length-1;}else{for(let i=0;i=startPos&&event.contentOffset.x=0){if(thumbnailsIndex.get()===thumbnailsAnimateTo.get()){thumbnailsAnimateTo.set(-1);selectedIndex.set(thumbnailsIndex.get());}return;}const wasTouched=viewerScrolling.get()!==0||thumbnailsScrolling.get()!==0;if(wasTouched&&thumbnailsIndex.get()!==selectedIndex.get()){selectedIndex.set(thumbnailsIndex.get());runOnJS(onSelectedIndexChange)();}}" }; const __initData4 = { code: "function useMediaViewerSyncerTsx4(){const{thumbnailsScrolling,SCROLLING_MOMENTUM,swipeSource}=this.__closure;thumbnailsScrolling.set(thumbnailsScrolling.get()|SCROLLING_MOMENTUM);swipeSource.set('thumbnails');}" }; const __initData5 = { code: "function useMediaViewerSyncerTsx5(){const{thumbnailsScrolling,SCROLLING_MOMENTUM}=this.__closure;thumbnailsScrolling.set(thumbnailsScrolling.get()&~SCROLLING_MOMENTUM);}" }; const __initData6 = { code: "function useMediaViewerSyncerTsx6(){const{thumbnailsAnimateTo,variableWidthThumbnailsEnabled,runOnJS,scrollVarWidthThumbnails,scrollTo,ref,thumbnailSize}=this.__closure;if(thumbnailsAnimateTo.get()<0)return;if(variableWidthThumbnailsEnabled){runOnJS(scrollVarWidthThumbnails)(thumbnailsAnimateTo.get());}else{scrollTo(ref,thumbnailsAnimateTo.get()*thumbnailSize,0,true);}}" }; const __initData7 = { code: "function useMediaViewerSyncerTsx7(){const{viewerScrolling,thumbnailsIndex,viewerPos,variableWidthThumbnailsEnabled,runOnJS,lerpScrollVarWidthThumbnails,scrollTo,ref,thumbnailSize}=this.__closure;if(viewerScrolling.get()===0)return;else if(thumbnailsIndex.get()!==viewerPos.get()){if(variableWidthThumbnailsEnabled){runOnJS(lerpScrollVarWidthThumbnails)(viewerPos.get());}else{scrollTo(ref,viewerPos.get()*thumbnailSize,0,false);}}}" }; const __initData8 = { code: "function useMediaViewerSyncerTsx8(){const{thumbnailsScrolling,interpolate,viewerPos,interpolateInput,interpolateOutput}=this.__closure;return thumbnailsScrolling.get()>0?0:-interpolate(viewerPos.get(),interpolateInput,interpolateOutput,'clamp');}" }; const __initData9 = { code: "function useMediaViewerSyncerTsx9(){const{viewerScrolling,headerBufferSize,margin,withSpring}=this.__closure;return{width:viewerScrolling.get()>0?headerBufferSize+margin.get():withSpring(headerBufferSize+margin.get(),{overshootClamping:true})};}" }; const __initData10 = { code: "function useMediaViewerSyncerTsx10(){const{viewerScrolling,footerBufferSize,margin,withSpring}=this.__closure;return{width:viewerScrolling.get()>0?footerBufferSize+margin.get():withSpring(footerBufferSize+margin.get(),{overshootClamping:true})};}" }; const __initData11 = { code: "function useMediaViewerSyncerTsx11(){const{interpolate,viewerPos,index}=this.__closure;return interpolate(viewerPos.get(),[index-1,index,index+1],[0.4,1,0.4],'clamp');}" }; const __initData12 = { code: "function useMediaViewerSyncerTsx13(){const{thumbnailsScrolling,THUMBNAIL_MIN_WIDTH,interpolate,viewerPos,index,sourceWidth}=this.__closure;return thumbnailsScrolling.get()>0?THUMBNAIL_MIN_WIDTH:interpolate(viewerPos.get(),[index-1,index,index+1],[THUMBNAIL_MIN_WIDTH,sourceWidth,THUMBNAIL_MIN_WIDTH],'clamp');}" }; const __initData13 = { code: "function useMediaViewerSyncerTsx14(){const{viewerScrolling,_width,withSpring,THUMBNAIL_HEIGHT,opacity}=this.__closure;return{width:viewerScrolling.get()>0?_width.get():withSpring(_width.get(),{overshootClamping:true}),height:THUMBNAIL_HEIGHT,opacity:opacity.get()};}" }; const __initData14 = { code: "function useMediaViewerSyncerTsx15(){const{zoomed}=this.__closure;return!zoomed.get();}" }; const __initData15 = { code: "function useMediaViewerSyncerTsx16(){const{thumbnailsAnimateTo,scrollTo,ref,screenWidth}=this.__closure;if(thumbnailsAnimateTo.get()===-1)return;scrollTo(ref,thumbnailsAnimateTo.get()*screenWidth,0,false);}" }; const __initData16 = { code: "function useMediaViewerSyncerTsx17(){const{thumbnailsScrolling,viewerScrolling,thumbnailsAnimateTo,scrollTo,ref,thumbnailsIndex,screenWidth}=this.__closure;if(thumbnailsScrolling.get()===0||viewerScrolling.get()>0||thumbnailsAnimateTo.get()!==-1)return;scrollTo(ref,thumbnailsIndex.get()*screenWidth,0,false);}" }; const __initData17 = { code: "function useMediaViewerSyncerTsx18(){const{viewerScrolling,SCROLLING_DRAG,swipeSource}=this.__closure;viewerScrolling.set(viewerScrolling.get()|SCROLLING_DRAG);swipeSource.set('viewer');}" }; const __initData18 = { code: "function useMediaViewerSyncerTsx19(){const{viewerScrolling,SCROLLING_DRAG}=this.__closure;viewerScrolling.set(viewerScrolling.get()&~SCROLLING_DRAG);}" }; const __initData19 = { code: "function useMediaViewerSyncerTsx20(pos){const{viewerPos}=this.__closure;viewerPos.set(pos);}" }; const __initData20 = { code: "function useMediaViewerSyncerTsx21(){const{viewerScrolling,SCROLLING_MOMENTUM,swipeSource}=this.__closure;viewerScrolling.set(viewerScrolling.get()|SCROLLING_MOMENTUM);swipeSource.set('viewer');}" }; const __initData21 = { code: "function useMediaViewerSyncerTsx22(){const{viewerScrolling,SCROLLING_MOMENTUM}=this.__closure;viewerScrolling.set(viewerScrolling.get()&~SCROLLING_MOMENTUM);}" }; const __initData22 = { code: "function useMediaViewerSyncerTsx23(event){const{contentSizeLastChangedAt,IS_ANDROID,selectedIndex,scrollTo,ref,screenWidth,viewerScrolling,thumbnailsScrolling,thumbnailsAnimateTo,onScrollWorklets}=this.__closure;const contentSizeChangedRecently=Date.now()-contentSizeLastChangedAt.get()<500;if(IS_ANDROID&&contentSizeChangedRecently&&event.contentOffset.x===0&&selectedIndex.get()!==0){scrollTo(ref,selectedIndex.get()*screenWidth,event.contentOffset.y,false);return;}if(viewerScrolling.get()===0&&thumbnailsScrolling.get()===0&&thumbnailsAnimateTo.get()===-1)return;onScrollWorklets.onScroll(event.contentOffset.x/screenWidth);}" }; const __initData23 = { code: "function useMediaViewerSyncerTsx24(){const{index,selectedIndex}=this.__closure;return index===selectedIndex.get();}" }; const __initData24 = { code: "function useMediaViewerSyncerTsx25(result,previous){const{runOnJS,setVisible}=this.__closure;if(previous==null||previous===result)return;runOnJS(setVisible)(result);}" }; export function useMediaViewerSyncer({ sources, initialIndex, onEndReached, onEndReachedThreshold }) { const memo = useMemo(() => ({ selectedIndex: makeMutable(initialIndex), thumbnailsIndex: makeMutable(initialIndex), thumbnailsScrolling: makeMutable(0), thumbnailsAnimateTo: makeMutable(-1), viewerPos: makeMutable(initialIndex), viewerScrolling: makeMutable(0), zoomed: makeMutable(false), swipeSource: makeMutable(void 0) }), [initialIndex]); return useMemo(() => { let r32, length; const r13 = []; const r8 = 0 < sources.length; let r1 = 0; let r11 = 0; if (r8) { do { const r28 = flattenSource(sources[r1]); const r3 = r1; const start = r11; if (r28 != null) { const end = start + (Math.max(Math.min(r28.width * (THUMBNAIL_HEIGHT / r28.height), THUMBNAIL_MAX_WIDTH), THUMBNAIL_MIN_WIDTH) + 2 * THUMBNAIL_MARGIN); r13.push({ start, end, scrollStart: r3 !== 0 ? Math.floor(start + (end - start - (r13[0].end - r13[0].start)) / 2) : 0 }); r32 = end; } else { r13.push({ start, end: start, scrollStart: start }); r32 = start; } r1 = r3 + 1; length = sources.length; r11 = r32; } while (r1 < length); } const sources2 = sources; const ThumbnailScrollPositions = r13; const { selectedIndex, thumbnailsIndex, thumbnailsScrolling, thumbnailsAnimateTo, viewerPos, viewerScrolling, zoomed, swipeSource } = memo; const variableWidthThumbnailsEnabled = false; if (ThumbnailScrollPositions.length > 0) { ThumbnailScrollPositions[0].end; ThumbnailScrollPositions[0].start; } return { index: selectedIndex, sources, zoomed, ThumbnailScrollPositions, variableWidthThumbnailsEnabled: false, useThumbnailsProps: function useThumbnailsProps(a0, a1) { let animatedRef, c31446_4, c31446_5, derivedValue, c31446_7, c31446_8; let c31446_0 = a0; let c31446_1 = a1; const onSelectedIndexChange2 = function onSelectedIndexChange() { if (swipeSource.get() === "thumbnails") { MediaViewerAnalytics.markActionPerformed(IncrementableMediaViewerActions.THUMBNAIL_SWIPE); } else if (swipeSource.get() === "viewer") { MediaViewerAnalytics.markActionPerformed(IncrementableMediaViewerActions.VIEWER_SWIPE); } MediaViewerAnalytics.markActionPerformed(IncrementableMediaViewerActions.SELECTED_ITEM_CHANGE); }; animatedRef = useAnimatedRef(); const mediaViewerDimensions = useMediaViewerDimensions(); const { width: width2, height } = mediaViewerDimensions; const safeAreaInsets_native = useSafeAreaInsets_native(); const y = function y() { thumbnailsScrolling.set(2 | thumbnailsScrolling.get()); swipeSource.set("thumbnails"); }; y.__closure = { thumbnailsScrolling, SCROLLING_DRAG: 2, swipeSource }; y.__workletHash = 16224520186325; y.__initData = __initData; const C = function C() { thumbnailsScrolling.set(-3 & thumbnailsScrolling.get()); }; C.__closure = { thumbnailsScrolling, SCROLLING_DRAG: 2 }; C.__workletHash = 5779899826871; C.__initData = __initData2; const E = function E(a0) { const r11 = a0.contentOffset.x / c31446_0; if (!(swipeSource.get() !== "thumbnails" && !(Math.abs(Math.round(r11) - r11) < 0.01))) { thumbnailsIndex.set(Math.max(0, Math.min(Math.round(r11), c31446_1))); } if (thumbnailsAnimateTo.get() >= 0) { if (thumbnailsIndex.get() === thumbnailsAnimateTo.get()) { thumbnailsAnimateTo.set(-1); selectedIndex.set(thumbnailsIndex.get()); } } else if ((viewerScrolling.get() !== 0 || thumbnailsScrolling.get() !== 0) && thumbnailsIndex.get() !== selectedIndex.get()) { selectedIndex.set(thumbnailsIndex.get()); _ReanimatedRexport.runOnJS(onSelectedIndexChange2)(); } }; E.__closure = { variableWidthThumbnailsEnabled, ThumbnailScrollPositions, thumbnailSize: a0, swipeSource, maxIndex: a1, thumbnailsIndex, thumbnailsAnimateTo, selectedIndex, viewerScrolling, thumbnailsScrolling, runOnJS: _ReanimatedRexport.runOnJS, onSelectedIndexChange: onSelectedIndexChange2 }; E.__workletHash = 10605529664479; E.__initData = __initData3; const P = function P() { thumbnailsScrolling.set(4 | thumbnailsScrolling.get()); swipeSource.set("thumbnails"); }; P.__closure = { thumbnailsScrolling, SCROLLING_MOMENTUM: 4, swipeSource }; P.__workletHash = 4138169755088; P.__initData = __initData4; const R = function R() { thumbnailsScrolling.set(-5 & thumbnailsScrolling.get()); }; R.__closure = { thumbnailsScrolling, SCROLLING_MOMENTUM: 4 }; R.__workletHash = 1471443652144; R.__initData = __initData5; const animatedScrollHandler = useAnimatedScrollHandler({ onBeginDrag: y, onEndDrag: C, onScroll: E, onMomentumBegin: P, onMomentumEnd: R }); const callback = useCallback((a0) => { if (!zoomed.get()) { thumbnailsAnimateTo.set(a0); swipeSource.set("thumbnails"); } }, []); const callback2 = useCallback((a0) => { _ReanimatedRexport.scrollTo(animatedRef, ThumbnailScrollPositions[a0].scrollStart, 0, true); }, [animatedRef]); const k = function k() { if (!(thumbnailsAnimateTo.get() < 0)) { _ReanimatedRexport.scrollTo(animatedRef, thumbnailsAnimateTo.get() * c31446_0, 0, true); } }; k.__closure = { thumbnailsAnimateTo, variableWidthThumbnailsEnabled, runOnJS: _ReanimatedRexport.runOnJS, scrollVarWidthThumbnails: callback2, scrollTo: _ReanimatedRexport.scrollTo, ref: animatedRef, thumbnailSize: a0 }; k.__workletHash = 1697086875584; k.__initData = __initData6; useDerivedValue(k); const callback3 = useCallback((a0) => { _ReanimatedRexport.scrollTo(animatedRef, lerpVarWidthThumbnailScrollBounds(ThumbnailScrollPositions, a0), 0, false); }, [animatedRef]); const Z = function Z() { if (viewerScrolling.get() !== 0 && thumbnailsIndex.get() !== viewerPos.get()) { _ReanimatedRexport.scrollTo(animatedRef, viewerPos.get() * c31446_0, 0, false); } }; Z.__closure = { viewerScrolling, thumbnailsIndex, viewerPos, variableWidthThumbnailsEnabled, runOnJS: _ReanimatedRexport.runOnJS, lerpScrollVarWidthThumbnails: callback3, scrollTo: _ReanimatedRexport.scrollTo, ref: animatedRef, thumbnailSize: a0 }; Z.__workletHash = 10477949154269; Z.__initData = __initData7; useDerivedValue(Z); const interpolateInput = sources2.map((item, index) => index); c31446_4 = interpolateInput; const interpolateOutput = sources2.map((item) => { const r14 = flattenSource(item); return r14 == null ? 0 : (Math.max(Math.min(r14.width * (THUMBNAIL_HEIGHT / r14.height), THUMBNAIL_MAX_WIDTH), THUMBNAIL_MIN_WIDTH) - THUMBNAIL_MIN_WIDTH) / 2; }); c31446_5 = interpolateOutput; const ee = () => thumbnailsScrolling.get() > 0 ? 0 : -_ReanimatedRexport.interpolate(viewerPos.get(), c31446_4, c31446_5, "clamp"); ee.__closure = { thumbnailsScrolling, interpolate: _ReanimatedRexport.interpolate, viewerPos, interpolateInput, interpolateOutput }; ee.__workletHash = 10097839523885; ee.__initData = __initData8; derivedValue = useDerivedValue(ee); const headerBufferSize = (width2 - a0) / 2 - safeAreaInsets_native.left; c31446_7 = headerBufferSize; const te = () => ({ width: viewerScrolling.get() > 0 ? c31446_7 + derivedValue.get() : _spring.withSpring(c31446_7 + derivedValue.get(), { overshootClamping: true }) }); te.__closure = { viewerScrolling, headerBufferSize, margin: derivedValue, withSpring: _spring.withSpring }; te.__workletHash = 11328769587377; te.__initData = __initData9; const animatedStyle = useAnimatedStyle(te); ThumbnailScrollPositions[ThumbnailScrollPositions.length - 1]; const footerBufferSize = (width2 - a0) / 2 - safeAreaInsets_native.right; c31446_8 = footerBufferSize; const ne = () => ({ width: viewerScrolling.get() > 0 ? c31446_8 + derivedValue.get() : _spring.withSpring(c31446_8 + derivedValue.get(), { overshootClamping: true }) }); ne.__closure = { viewerScrolling, footerBufferSize, margin: derivedValue, withSpring: _spring.withSpring }; ne.__workletHash = 10532164558483; ne.__initData = __initData10; const animatedStyle2 = useAnimatedStyle(ne); const callback4 = useCallback((a0, a1) => { let derivedValue2, c31971_2, derivedValue3; const r18 = () => { const r12 = viewerPos.get(); return _ReanimatedRexport.interpolate(r12, [a1 - 1, a1, a1 + 1], [0.4, 1, 0.4], "clamp"); }; r18.__closure = { interpolate: _ReanimatedRexport.interpolate, viewerPos, index: a1 }; r18.__workletHash = 5784737783661; r18.__initData = __initData11; derivedValue2 = useDerivedValue(r18); const sourceWidth = Math.max(Math.min(a0.width * (THUMBNAIL_HEIGHT / a0.height), THUMBNAIL_MAX_WIDTH), THUMBNAIL_MIN_WIDTH); c31971_2 = sourceWidth; const r38 = () => { let r29; if (thumbnailsScrolling.get() > 0) { r29 = THUMBNAIL_MIN_WIDTH; } else { const r14 = viewerPos.get(); r29 = _ReanimatedRexport.interpolate(r14, [a1 - 1, a1, a1 + 1], [THUMBNAIL_MIN_WIDTH, c31971_2, THUMBNAIL_MIN_WIDTH], "clamp"); } return r29; }; r38.__closure = { thumbnailsScrolling, THUMBNAIL_MIN_WIDTH, interpolate: _ReanimatedRexport.interpolate, viewerPos, index: a1, sourceWidth }; r38.__workletHash = 12440745987072; r38.__initData = __initData12; derivedValue3 = useDerivedValue(r38); const u = () => ({ width: viewerScrolling.get() > 0 ? derivedValue3.get() : _spring.withSpring(derivedValue3.get(), { overshootClamping: true }), height: THUMBNAIL_HEIGHT, opacity: derivedValue2.get() }); u.__closure = { viewerScrolling, _width: derivedValue3, withSpring: _spring.withSpring, THUMBNAIL_HEIGHT, opacity: derivedValue2 }; u.__workletHash = 513826663139; u.__initData = __initData13; return useAnimatedStyle(u); }, []); const ie = () => !zoomed.get(); ie.__closure = { zoomed }; ie.__workletHash = 7667674289153; ie.__initData = __initData14; return { ref: animatedRef, headerBufferStyle: animatedStyle, headerBufferSize, footerBufferStyle: animatedStyle2, footerBufferSize, scrollEnabled: useDerivedValue(ie), onScroll: animatedScrollHandler, onSelect: callback, useThumbnailStyle: callback4, screenWidth: width2, screenHeight: height, itemSize: (a0, a1) => THUMBNAIL_WIDTH_MARGIN }; }, useViewerProps: function useViewerProps() { let memo2, sharedValue; const animatedRef2 = useAnimatedRef(); const mediaViewerDimensions = useMediaViewerDimensions(); const { width, height } = mediaViewerDimensions; const r29 = function i() { if (thumbnailsAnimateTo.get() !== -1) { _ReanimatedRexport.scrollTo(animatedRef2, thumbnailsAnimateTo.get() * width, 0, false); } }; r29.__closure = { thumbnailsAnimateTo, scrollTo: _ReanimatedRexport.scrollTo, ref: animatedRef2, screenWidth: width }; r29.__workletHash = 11860326453239; r29.__initData = __initData15; useDerivedValue(r29); const r37 = function l() { if (!(thumbnailsScrolling.get() === 0 || viewerScrolling.get() > 0 || thumbnailsAnimateTo.get() !== -1)) { _ReanimatedRexport.scrollTo(animatedRef2, thumbnailsIndex.get() * width, 0, false); } }; r37.__closure = { thumbnailsScrolling, viewerScrolling, thumbnailsAnimateTo, scrollTo: _ReanimatedRexport.scrollTo, ref: animatedRef2, thumbnailsIndex, screenWidth: width }; r37.__workletHash = 16855593341498; r37.__initData = __initData16; useDerivedValue(r37); memo2 = useMemo(() => { const onBeginDrag = function() { viewerScrolling.set(2 | viewerScrolling.get()); swipeSource.set("viewer"); }; onBeginDrag.__closure = { viewerScrolling, SCROLLING_DRAG: 2, swipeSource }; onBeginDrag.__workletHash = 1082965969005; onBeginDrag.__initData = __initData17; const onEndDrag = function l() { viewerScrolling.set(-3 & viewerScrolling.get()); }; onEndDrag.__closure = { viewerScrolling, SCROLLING_DRAG: 2 }; onEndDrag.__workletHash = 1722948238280; onEndDrag.__initData = __initData18; const onScroll = function i(a0) { viewerPos.set(a0); }; onScroll.__closure = { viewerPos }; onScroll.__workletHash = 3817181878424; onScroll.__initData = __initData19; const n = function n() { viewerScrolling.set(4 | viewerScrolling.get()); swipeSource.set("viewer"); }; n.__closure = { viewerScrolling, SCROLLING_MOMENTUM: 4, swipeSource }; n.__workletHash = 16635271467463; n.__initData = __initData20; const t = function t() { viewerScrolling.set(-5 & viewerScrolling.get()); }; t.__closure = { viewerScrolling, SCROLLING_MOMENTUM: 4 }; t.__workletHash = 8806989101472; t.__initData = __initData21; return { onBeginDrag, onEndDrag, onScroll, onMomentumBegin: n, onMomentumEnd: t }; }, []); sharedValue = useSharedValue(0); const S = function S(a0) { const r20 = Date.now() - sharedValue.get(); if (isAndroid && (r20 < 500 && (a0.contentOffset.x === 0 && selectedIndex.get() !== 0))) { _ReanimatedRexport.scrollTo(animatedRef2, selectedIndex.get() * width, a0.contentOffset.y, false); } else if (!(viewerScrolling.get() === 0 && thumbnailsScrolling.get() === 0 && thumbnailsAnimateTo.get() === -1)) { memo2.onScroll(a0.contentOffset.x / width); } }; S.__closure = { contentSizeLastChangedAt: sharedValue, IS_ANDROID: isAndroid, selectedIndex, scrollTo: _ReanimatedRexport.scrollTo, ref: animatedRef2, screenWidth: width, viewerScrolling, thumbnailsScrolling, thumbnailsAnimateTo, onScrollWorklets: memo2 }; S.__workletHash = 7511342747846; S.__initData = __initData22; const animatedScrollHandler = useAnimatedScrollHandler({ onBeginDrag: memo2.onBeginDrag, onEndDrag: memo2.onEndDrag, onScroll: S, onMomentumBegin: memo2.onMomentumBegin, onMomentumEnd: memo2.onMomentumEnd }); const callback = useCallback(() => { const r4 = selectedIndex.get() * width; const current = animatedRef2.current; if (current != null) { current.scrollTo(r4, false); } sharedValue.set(Date.now()); }, [animatedRef2, width, sharedValue]); useEffect(() => { const current = animatedRef2.current; if (current != null) { current.reset(); } }, [width, height, animatedRef2]); return { ref: animatedRef2, onScroll: animatedScrollHandler, onContentSizeChange: callback, useItemVisible: useCallback((a0) => { let c31972_0 = a0; const [state, setState] = useState(a0 === selectedIndex.get()); const r23 = () => c31972_0 === selectedIndex.get(); r23.__closure = { index: a0, selectedIndex }; r23.__workletHash = 16337538404179; r23.__initData = __initData23; const r26 = function l(a0, a1) { if (a1 != null && a1 !== a0) { _ReanimatedRexport.runOnJS(setState)(a0); } }; r26.__closure = { runOnJS: _ReanimatedRexport.runOnJS, setVisible: setState }; r26.__workletHash = 17035713313425; r26.__initData = __initData24; useAnimatedReaction(r23, r26); return state; }, []) }; }, onEndReached, onEndReachedThreshold }; }, [sources, memo, onEndReached, onEndReachedThreshold]); }