584 lines
27 KiB
TypeScript
584 lines
27 KiB
TypeScript
// 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]);
|
|
}
|