This commit is contained in:
janisslsm committed 2026-11-01 12:12:55 +02:00
1 parent 1781d25a15
commit 732c0ad767
33051 files changed
+2591613 -3019689

No files matched your search

@@ -0,0 +1,583 @@
// 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<ThumbnailScrollPositions.length;i++){const startPos=ThumbnailScrollPositions[i].scrollStart;let endPos=i<ThumbnailScrollPositions.length-1?ThumbnailScrollPositions[i+1].scrollStart:startPos;if(i===ThumbnailScrollPositions.length-1){endPos=ThumbnailScrollPositions[i].end;}if(event.contentOffset.x>=startPos&&event.contentOffset.x<endPos){thumbnails=i+(event.contentOffset.x-startPos)/(endPos-startPos);break;}}}}else{thumbnails=event.contentOffset.x/thumbnailSize;}if(swipeSource.get()==='thumbnails'||Math.abs(Math.round(thumbnails)-thumbnails)<0.01){const index=Math.max(0,Math.min(Math.round(thumbnails),maxIndex));thumbnailsIndex.set(index);}if(thumbnailsAnimateTo.get()>=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]);
}