decord/source/modules/media_viewer/native/useMediaViewerSyncer.tsx
2026-07-21 22:01:30 +00:00

597 lines
33 KiB
TypeScript

// Module ID: 8287
// Function ID: 65408
// Name: useMediaViewerSyncer
// Dependencies: []
// Exports: useMediaViewerSyncer
// Module 8287 (useMediaViewerSyncer)
let closure_3 = importDefault(dependencyMap[0]);
let closure_4 = importAll(dependencyMap[1]);
({ THUMBNAIL_MARGIN: closure_5, THUMBNAIL_HEIGHT: closure_6, THUMBNAIL_MAX_WIDTH: closure_7, THUMBNAIL_MIN_WIDTH: closure_8, THUMBNAIL_WIDTH_MARGIN: closure_9 } = arg1(dependencyMap[2]));
const tmp2 = arg1(dependencyMap[2]);
let closure_10 = arg1(dependencyMap[3]).isAndroid();
let closure_11 = { code: "function useMediaViewerSyncerTsx1(){const{thumbnailsScrolling,SCROLLING_DRAG,swipeSource}=this.__closure;thumbnailsScrolling.set(thumbnailsScrolling.get()|SCROLLING_DRAG);swipeSource.set('thumbnails');}" };
let closure_12 = { code: "function useMediaViewerSyncerTsx2(){const{thumbnailsScrolling,SCROLLING_DRAG}=this.__closure;thumbnailsScrolling.set(thumbnailsScrolling.get()&~SCROLLING_DRAG);}" };
let closure_13 = { 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)();}}" };
let closure_14 = { code: "function useMediaViewerSyncerTsx4(){const{thumbnailsScrolling,SCROLLING_MOMENTUM,swipeSource}=this.__closure;thumbnailsScrolling.set(thumbnailsScrolling.get()|SCROLLING_MOMENTUM);swipeSource.set('thumbnails');}" };
let closure_15 = { code: "function useMediaViewerSyncerTsx5(){const{thumbnailsScrolling,SCROLLING_MOMENTUM}=this.__closure;thumbnailsScrolling.set(thumbnailsScrolling.get()&~SCROLLING_MOMENTUM);}" };
let closure_16 = { 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);}}" };
let closure_17 = { 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);}}}" };
let closure_18 = { code: "function useMediaViewerSyncerTsx8(){const{thumbnailsScrolling,interpolate,viewerPos,interpolateInput,interpolateOutput}=this.__closure;return thumbnailsScrolling.get()>0?0:-interpolate(viewerPos.get(),interpolateInput,interpolateOutput,'clamp');}" };
let closure_19 = { code: "function useMediaViewerSyncerTsx9(){const{viewerScrolling,headerBufferSize,margin,withSpring}=this.__closure;return{width:viewerScrolling.get()>0?headerBufferSize+margin.get():withSpring(headerBufferSize+margin.get(),{overshootClamping:true})};}" };
let closure_20 = { code: "function useMediaViewerSyncerTsx10(){const{viewerScrolling,footerBufferSize,margin,withSpring}=this.__closure;return{width:viewerScrolling.get()>0?footerBufferSize+margin.get():withSpring(footerBufferSize+margin.get(),{overshootClamping:true})};}" };
let closure_21 = { code: "function useMediaViewerSyncerTsx11(){const{interpolate,viewerPos,index}=this.__closure;return interpolate(viewerPos.get(),[index-1,index,index+1],[0.4,1,0.4],'clamp');}" };
let closure_22 = { 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');}" };
let closure_23 = { 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()};}" };
let closure_24 = { code: "function useMediaViewerSyncerTsx15(){const{zoomed}=this.__closure;return!zoomed.get();}" };
let closure_25 = { code: "function useMediaViewerSyncerTsx16(){const{thumbnailsAnimateTo,scrollTo,ref,screenWidth}=this.__closure;if(thumbnailsAnimateTo.get()===-1)return;scrollTo(ref,thumbnailsAnimateTo.get()*screenWidth,0,false);}" };
let closure_26 = { 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);}" };
let closure_27 = { code: "function useMediaViewerSyncerTsx18(){const{viewerScrolling,SCROLLING_DRAG,swipeSource}=this.__closure;viewerScrolling.set(viewerScrolling.get()|SCROLLING_DRAG);swipeSource.set('viewer');}" };
let closure_28 = { code: "function useMediaViewerSyncerTsx19(){const{viewerScrolling,SCROLLING_DRAG}=this.__closure;viewerScrolling.set(viewerScrolling.get()&~SCROLLING_DRAG);}" };
let closure_29 = { code: "function useMediaViewerSyncerTsx20(pos){const{viewerPos}=this.__closure;viewerPos.set(pos);}" };
let closure_30 = { code: "function useMediaViewerSyncerTsx21(){const{viewerScrolling,SCROLLING_MOMENTUM,swipeSource}=this.__closure;viewerScrolling.set(viewerScrolling.get()|SCROLLING_MOMENTUM);swipeSource.set('viewer');}" };
let closure_31 = { code: "function useMediaViewerSyncerTsx22(){const{viewerScrolling,SCROLLING_MOMENTUM}=this.__closure;viewerScrolling.set(viewerScrolling.get()&~SCROLLING_MOMENTUM);}" };
let closure_32 = { 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);}" };
let closure_33 = { code: "function useMediaViewerSyncerTsx24(){const{index,selectedIndex}=this.__closure;return index===selectedIndex.get();}" };
let closure_34 = { code: "function useMediaViewerSyncerTsx25(result,previous){const{runOnJS,setVisible}=this.__closure;if(previous==null||previous===result)return;runOnJS(setVisible)(result);}" };
const obj = arg1(dependencyMap[3]);
const result = arg1(dependencyMap[11]).fileFinishedImporting("modules/media_viewer/native/useMediaViewerSyncer.tsx");
export const useMediaViewerSyncer = function useMediaViewerSyncer(sources) {
sources = sources.sources;
const arg1 = sources;
const initialIndex = sources.initialIndex;
const importDefault = initialIndex;
const onEndReached = sources.onEndReached;
const dependencyMap = onEndReached;
const onEndReachedThreshold = sources.onEndReachedThreshold;
let closure_3 = onEndReachedThreshold;
const items = [initialIndex];
const memo = React.useMemo(() => {
const obj = { selectedIndex: sources(onEndReached[4]).makeMutable(initialIndex) };
const obj2 = sources(onEndReached[4]);
obj.thumbnailsIndex = sources(onEndReached[4]).makeMutable(initialIndex);
const obj3 = sources(onEndReached[4]);
obj.thumbnailsScrolling = sources(onEndReached[4]).makeMutable(0);
const obj4 = sources(onEndReached[4]);
obj.thumbnailsAnimateTo = sources(onEndReached[4]).makeMutable(-1);
const obj5 = sources(onEndReached[4]);
obj.viewerPos = sources(onEndReached[4]).makeMutable(initialIndex);
const obj6 = sources(onEndReached[4]);
obj.viewerScrolling = sources(onEndReached[4]).makeMutable(0);
const obj7 = sources(onEndReached[4]);
obj.zoomed = sources(onEndReached[4]).makeMutable(false);
const obj8 = sources(onEndReached[4]);
obj.swipeSource = sources(onEndReached[4]).makeMutable(undefined);
return obj;
}, items);
const React = memo;
const items1 = [sources, memo, onEndReached, onEndReachedThreshold];
return React.useMemo(() => {
let arr = sources;
const items = [];
let num = 0;
let num2 = 0;
if (0 < sources.length) {
do {
let tmp = closure_0;
let tmp2 = closure_2;
let obj = closure_0(closure_2[9]);
let size = obj.flattenSource(arr[num2]);
if (null != size) {
let _Math = Math;
let _Math2 = Math;
let tmp5 = closure_6;
let tmp6 = closure_7;
let tmp7 = closure_8;
let tmp8 = closure_5;
let sum = Math.max(Math.min(size.width * (closure_6 / size.height), closure_7), closure_8) + 2 * closure_5;
let sum1 = num + sum;
let diff = sum1 - num;
let num3 = 0;
if (0 !== num2) {
let _Math3 = Math;
num3 = Math.floor(num + (diff - (items[0].end - items[0].start)) / 2);
}
obj = { start: num, end: sum1, scrollStart: num3 };
arr = items.push(obj);
let tmp4 = sum1;
let tmp13 = sum;
let tmp14 = num;
let tmp15 = sum1;
let tmp16 = diff;
} else {
obj = { start: num, end: num, scrollStart: num };
arr = items.push(obj);
tmp4 = num;
}
num2 = num2 + 1;
num = tmp4;
} while (num2 < arr.length);
}
return function makeMediaViewerSyncer(sources) {
let animProps;
let onEndReached;
let onEndReachedThreshold;
let thumbnailScrollPositions;
let zoomed;
sources = sources.sources;
({ animProps, thumbnailScrollPositions } = sources);
const selectedIndex = animProps.selectedIndex;
({ thumbnailsIndex: closure_3, thumbnailsScrolling: closure_4, thumbnailsAnimateTo: closure_5, viewerPos: closure_6, viewerScrolling: closure_7, zoomed } = animProps);
const swipeSource = animProps.swipeSource;
({ onEndReached, onEndReachedThreshold } = sources);
if (thumbnailScrollPositions.length > 0) {
const end = thumbnailScrollPositions[0].end;
const start = thumbnailScrollPositions[0].start;
}
return {
index: selectedIndex,
sources,
zoomed,
thumbnailScrollPositions,
variableWidthThumbnailsEnabled: false,
useThumbnailsProps(THUMBNAIL_WIDTH_MARGIN, maxIndex) {
const sources = THUMBNAIL_WIDTH_MARGIN;
const thumbnailScrollPositions = maxIndex;
function onSelectedIndexChange() {
if ("thumbnails" === store.get()) {
const MediaViewerAnalytics = arg0(animatedRef[7]).MediaViewerAnalytics;
MediaViewerAnalytics.markActionPerformed(arg0(animatedRef[7]).IncrementableMediaViewerActions.THUMBNAIL_SWIPE);
} else if ("viewer" === store.get()) {
const MediaViewerAnalytics3 = arg0(animatedRef[7]).MediaViewerAnalytics;
MediaViewerAnalytics3.markActionPerformed(arg0(animatedRef[7]).IncrementableMediaViewerActions.VIEWER_SWIPE);
}
const MediaViewerAnalytics2 = arg0(animatedRef[7]).MediaViewerAnalytics;
MediaViewerAnalytics2.markActionPerformed(arg0(animatedRef[7]).IncrementableMediaViewerActions.SELECTED_ITEM_CHANGE);
}
const zoomed = onSelectedIndexChange;
let obj = sources(selectedIndex[4]);
const animatedRef = obj.useAnimatedRef();
const selectedIndex = animatedRef;
let obj1 = sources(selectedIndex[5]);
const size = obj1.useMediaViewerDimensions();
const width = size.width;
const rect = thumbnailScrollPositions(selectedIndex[6])();
let obj2 = sources(selectedIndex[4]);
obj = { onBeginDrag: fn };
const fn = function y() {
const result = mapped1.set(2 | mapped1.get());
const result1 = store.set("thumbnails");
};
obj = { thumbnailsScrolling: mapped1, SCROLLING_DRAG: 2, swipeSource };
fn.__closure = obj;
fn.__workletHash = 16224520186325;
fn.__initData = closure_11;
class C {
constructor() {
result = scrollTo.set(-3 & scrollTo.get());
return;
}
}
C.__closure = { thumbnailsScrolling: mapped1, SCROLLING_DRAG: 2 };
C.__workletHash = 5779899826871;
C.__initData = closure_12;
obj.onEndDrag = C;
class E {
constructor(arg0) {
result = THUMBNAIL_WIDTH_MARGIN.contentOffset.x / THUMBNAIL_WIDTH_MARGIN;
if ("thumbnails" === closure_9.get()) {
tmp3 = globalThis;
_Math3 = Math;
_Math4 = Math;
_Math5 = Math;
tmp4 = maxIndex;
num2 = 0;
tmp5 = runOnJS;
result1 = runOnJS.set(Math.max(0, Math.min(Math.round(result), maxIndex)));
} else {
tmp2 = globalThis;
_Math = Math;
_Math2 = Math;
num = 0.01;
}
if (scrollTo.get() >= 0) {
tmp19 = runOnJS;
tmp21 = scrollTo;
value = runOnJS.get();
if (value === scrollTo.get()) {
tmp22 = scrollTo;
num4 = -1;
result2 = scrollTo.set(-1);
tmp24 = closure_2;
tmp25 = runOnJS;
result3 = closure_2.set(runOnJS.get());
}
} else {
tmp27 = THUMBNAIL_WIDTH_MARGIN;
tmp8 = 0 !== THUMBNAIL_WIDTH_MARGIN.get();
if (!tmp8) {
tmp7 = scrollTo;
tmp8 = 0 !== scrollTo.get();
}
if (tmp8) {
tmp9 = runOnJS;
tmp11 = closure_2;
value1 = runOnJS.get();
tmp8 = value1 !== closure_2.get();
}
if (tmp8) {
tmp12 = closure_2;
tmp13 = runOnJS;
result4 = closure_2.set(runOnJS.get());
tmp15 = THUMBNAIL_WIDTH_MARGIN;
tmp16 = closure_2;
num3 = 4;
obj = THUMBNAIL_WIDTH_MARGIN(closure_2[4]);
tmp17 = onSelectedIndexChange;
tmp18 = obj.runOnJS(onSelectedIndexChange)();
}
}
return;
}
}
obj1 = { variableWidthThumbnailsEnabled: false, thumbnailScrollPositions, thumbnailSize: THUMBNAIL_WIDTH_MARGIN, swipeSource, maxIndex, thumbnailsIndex: mapped, thumbnailsAnimateTo: derivedValue2, selectedIndex, viewerScrolling: diff1, thumbnailsScrolling: mapped1, runOnJS: sources(selectedIndex[4]).runOnJS, onSelectedIndexChange };
E.__closure = obj1;
E.__workletHash = 10605529664479;
E.__initData = closure_13;
obj.onScroll = E;
class P {
constructor() {
result = scrollTo.set(4 | scrollTo.get());
result1 = closure_9.set("thumbnails");
return;
}
}
P.__closure = { thumbnailsScrolling: mapped1, SCROLLING_MOMENTUM: 4, swipeSource };
P.__workletHash = 4138169755088;
P.__initData = closure_14;
obj.onMomentumBegin = P;
class R {
constructor() {
result = scrollTo.set(-5 & scrollTo.get());
return;
}
}
R.__closure = { thumbnailsScrolling: mapped1, SCROLLING_MOMENTUM: 4 };
R.__workletHash = 1471443652144;
R.__initData = closure_15;
obj.onMomentumEnd = R;
const items = [animatedRef];
const callback = mapped1.useCallback((arg0) => {
if (!onSelectedIndexChange.get()) {
const result = derivedValue2.set(arg0);
const result1 = store.set("thumbnails");
}
}, []);
const callback1 = mapped1.useCallback((arg0) => {
arg0(animatedRef[4]).scrollTo(animatedRef, arg1[arg0].scrollStart, 0, true);
}, items);
let obj6 = sources(selectedIndex[4]);
const fn2 = function k() {
if (derivedValue2.get() >= 0) {
const obj = arg0(animatedRef[4]);
obj.scrollTo(animatedRef, derivedValue2.get() * arg0, 0, true);
}
};
obj2 = { thumbnailsAnimateTo: derivedValue2, variableWidthThumbnailsEnabled: false, runOnJS: sources(selectedIndex[4]).runOnJS, scrollVarWidthThumbnails: callback1, scrollTo: sources(selectedIndex[4]).scrollTo, ref: animatedRef, thumbnailSize: THUMBNAIL_WIDTH_MARGIN };
fn2.__closure = obj2;
fn2.__workletHash = 1697086875584;
fn2.__initData = closure_16;
const derivedValue = obj6.useDerivedValue(fn2);
const items1 = [animatedRef];
const callback2 = mapped1.useCallback((arg0) => {
const result = arg0(animatedRef[8]).lerpVarWidthThumbnailScrollBounds(arg1, arg0);
const obj = arg0(animatedRef[8]);
arg0(animatedRef[4]).scrollTo(animatedRef, result, 0, false);
}, items1);
let obj8 = sources(selectedIndex[4]);
class Z {
constructor() {
tmp = 0 !== THUMBNAIL_WIDTH_MARGIN.get();
if (tmp) {
tmp2 = runOnJS;
tmp4 = left;
value = runOnJS.get();
tmp = value !== left.get();
}
if (tmp) {
tmp5 = THUMBNAIL_WIDTH_MARGIN;
tmp6 = closure_2;
num = 4;
obj = THUMBNAIL_WIDTH_MARGIN(closure_2[4]);
tmp7 = closure_2;
tmp8 = left;
tmp9 = THUMBNAIL_WIDTH_MARGIN;
flag = false;
tmp10 = obj;
num2 = 0;
scrollToResult = obj.scrollTo(closure_2, left.get() * THUMBNAIL_WIDTH_MARGIN, 0, false);
}
return;
}
}
const animatedScrollHandler = obj2.useAnimatedScrollHandler(obj);
Z.__closure = { viewerScrolling: diff1, thumbnailsIndex: mapped, viewerPos: diff, variableWidthThumbnailsEnabled: false, runOnJS: sources(selectedIndex[4]).runOnJS, lerpScrollVarWidthThumbnails: callback2, scrollTo: sources(selectedIndex[4]).scrollTo, ref: animatedRef, thumbnailSize: THUMBNAIL_WIDTH_MARGIN };
Z.__workletHash = 10477949154269;
Z.__initData = closure_17;
const derivedValue1 = obj8.useDerivedValue(Z);
const mapped = sources.map((arg0, arg1) => arg1);
const mapped1 = sources.map((closure_1) => {
const size = closure_1(animatedRef[9]).flattenSource(closure_1);
let num = 0;
if (null != size) {
const _Math = Math;
const _Math2 = Math;
num = (Math.max(Math.min(size.width * (diff / size.height), diff1), onSelectedIndexChange) - onSelectedIndexChange) / 2;
}
return num;
});
const obj3 = { viewerScrolling: diff1, thumbnailsIndex: mapped, viewerPos: diff, variableWidthThumbnailsEnabled: false, runOnJS: sources(selectedIndex[4]).runOnJS, lerpScrollVarWidthThumbnails: callback2, scrollTo: sources(selectedIndex[4]).scrollTo, ref: animatedRef, thumbnailSize: THUMBNAIL_WIDTH_MARGIN };
function ee() {
let num = 0;
if (mapped1.get() <= 0) {
const obj = arg0(animatedRef[4]);
num = -obj.interpolate(diff.get(), mapped, mapped1, "clamp");
}
return num;
}
const obj11 = sources(selectedIndex[4]);
ee.__closure = { thumbnailsScrolling: mapped1, interpolate: sources(selectedIndex[4]).interpolate, viewerPos: diff, interpolateInput: mapped, interpolateOutput: mapped1 };
ee.__workletHash = 10097839523885;
ee.__initData = closure_18;
const derivedValue2 = obj11.useDerivedValue(ee);
const diff = (width - THUMBNAIL_WIDTH_MARGIN) / 2 - rect.left;
const obj4 = { thumbnailsScrolling: mapped1, interpolate: sources(selectedIndex[4]).interpolate, viewerPos: diff, interpolateInput: mapped, interpolateOutput: mapped1 };
function te() {
let obj = {};
if (diff1.get() > 0) {
let sum = diff + derivedValue2.get();
} else {
obj = { overshootClamping: true };
sum = arg0(animatedRef[10]).withSpring(diff + derivedValue2.get(), obj);
const obj2 = arg0(animatedRef[10]);
}
obj.width = sum;
return obj;
}
const obj13 = sources(selectedIndex[4]);
te.__closure = { viewerScrolling: diff1, headerBufferSize: diff, margin: derivedValue2, withSpring: sources(selectedIndex[10]).withSpring };
te.__workletHash = 11328769587377;
te.__initData = closure_19;
const diff1 = (width - THUMBNAIL_WIDTH_MARGIN) / 2 - rect.right;
const animatedStyle = obj13.useAnimatedStyle(te);
const obj5 = { viewerScrolling: diff1, headerBufferSize: diff, margin: derivedValue2, withSpring: sources(selectedIndex[10]).withSpring };
function ne() {
let obj = {};
if (diff1.get() > 0) {
let sum = diff1 + derivedValue2.get();
} else {
obj = { overshootClamping: true };
sum = arg0(animatedRef[10]).withSpring(diff1 + derivedValue2.get(), obj);
const obj2 = arg0(animatedRef[10]);
}
obj.width = sum;
return obj;
}
obj6 = { viewerScrolling: diff1, footerBufferSize: diff1, margin: derivedValue2, withSpring: sources(selectedIndex[10]).withSpring };
ne.__closure = obj6;
ne.__workletHash = 10532164558483;
ne.__initData = closure_20;
const animatedStyle1 = sources(selectedIndex[4]).useAnimatedStyle(ne);
const callback3 = mapped1.useCallback((width, index) => {
width = index;
let obj = width(animatedRef[4]);
const fn = function i() { ... };
obj = { interpolate: width(animatedRef[4]).interpolate, viewerPos: diff, index };
fn.__closure = obj;
fn.__workletHash = 5784737783661;
fn.__initData = closure_21;
const derivedValue = obj.useDerivedValue(fn);
index = derivedValue;
const bound = Math.max(Math.min(width.width * (diff / width.height), diff1), onSelectedIndexChange);
const animatedRef = bound;
const fn2 = function l() { ... };
obj = { thumbnailsScrolling: mapped1, THUMBNAIL_MIN_WIDTH: onSelectedIndexChange, interpolate: width(animatedRef[4]).interpolate, viewerPos: diff, index, sourceWidth: bound };
fn2.__closure = obj;
fn2.__workletHash = 12440745987072;
fn2.__initData = closure_22;
const derivedValue1 = width(animatedRef[4]).useDerivedValue(fn2);
const mapped = derivedValue1;
const obj3 = width(animatedRef[4]);
const fn3 = function u() { ... };
const obj5 = width(animatedRef[4]);
fn3.__closure = { viewerScrolling: diff1, _width: derivedValue1, withSpring: width(animatedRef[10]).withSpring, THUMBNAIL_HEIGHT: diff, opacity: derivedValue };
fn3.__workletHash = 513826663139;
fn3.__initData = closure_23;
return obj5.useAnimatedStyle(fn3);
}, []);
const obj15 = sources(selectedIndex[4]);
function ie() {
return !onSelectedIndexChange.get();
}
ie.__closure = { zoomed };
ie.__workletHash = 7667674289153;
ie.__initData = closure_24;
obj8 = {
ref: animatedRef,
headerBufferStyle: animatedStyle,
headerBufferSize: diff,
footerBufferStyle: animatedStyle1,
footerBufferSize: diff1,
scrollEnabled: sources(selectedIndex[4]).useDerivedValue(ie),
onScroll: animatedScrollHandler,
onSelect: callback,
useThumbnailStyle: callback3,
screenWidth: width,
screenHeight: size.height,
itemSize(arg0, arg1) {
return closure_9;
}
};
return obj8;
},
useViewerProps() {
let obj = sources(selectedIndex[4]);
const animatedRef = obj.useAnimatedRef();
const sources = animatedRef;
let obj1 = sources(selectedIndex[5]);
const size = obj1.useMediaViewerDimensions();
const width = size.width;
const thumbnailScrollPositions = width;
let obj2 = sources(selectedIndex[4]);
const fn = function i() {
if (-1 !== store.get()) {
const obj = animatedRef(memo[4]);
obj.scrollTo(animatedRef, store.get() * width, 0, false);
}
};
obj = { thumbnailsAnimateTo: closure_5, scrollTo: sources(selectedIndex[4]).scrollTo, ref: animatedRef, screenWidth: width };
fn.__closure = obj;
fn.__workletHash = 11860326453239;
fn.__initData = closure_25;
const derivedValue = obj2.useDerivedValue(fn);
const fn2 = function l() {
let tmp = 0 === React.get();
if (!tmp) {
tmp = store2.get() > 0;
}
if (!tmp) {
tmp = -1 !== store.get();
}
if (!tmp) {
const obj = animatedRef(memo[4]);
obj.scrollTo(animatedRef, sharedValue.get() * width, 0, false);
}
};
obj = { thumbnailsScrolling: React, viewerScrolling: closure_7, thumbnailsAnimateTo: closure_5, scrollTo: sources(selectedIndex[4]).scrollTo, ref: animatedRef, thumbnailsIndex: sharedValue, screenWidth: width };
fn2.__closure = obj;
fn2.__workletHash = 16855593341498;
fn2.__initData = closure_26;
const derivedValue1 = sources(selectedIndex[4]).useDerivedValue(fn2);
const memo = React.useMemo(() => {
const onBeginDrag = function o() { ... };
let obj = { viewerScrolling: closure_7, SCROLLING_DRAG: 2, swipeSource: closure_9 };
onBeginDrag.__closure = obj;
onBeginDrag.__workletHash = 1082965969005;
onBeginDrag.__initData = closure_27;
const onEndDrag = function l() { ... };
onEndDrag.__closure = { viewerScrolling: closure_7, SCROLLING_DRAG: 2 };
onEndDrag.__workletHash = 1722948238280;
onEndDrag.__initData = closure_28;
const onScroll = function i() { ... };
obj = { viewerPos: closure_6 };
onScroll.__closure = obj;
onScroll.__workletHash = 3817181878424;
onScroll.__initData = closure_29;
const onMomentumBegin = function n() { ... };
obj = { viewerScrolling: closure_7, SCROLLING_MOMENTUM: 4, swipeSource: closure_9 };
onMomentumBegin.__closure = obj;
onMomentumBegin.__workletHash = 16635271467463;
onMomentumBegin.__initData = closure_30;
const onMomentumEnd = function t() { ... };
onMomentumEnd.__closure = { viewerScrolling: closure_7, SCROLLING_MOMENTUM: 4 };
onMomentumEnd.__workletHash = 8806989101472;
onMomentumEnd.__initData = closure_31;
return { onBeginDrag, onEndDrag, onScroll, onMomentumBegin, onMomentumEnd };
}, []);
const selectedIndex = memo;
const obj5 = sources(selectedIndex[4]);
const sharedValue = sources(selectedIndex[4]).useSharedValue(0);
const obj7 = sources(selectedIndex[4]);
obj1 = { onBeginDrag: memo.onBeginDrag, onEndDrag: memo.onEndDrag };
class S {
constructor(arg0) {
timestamp = Date.now();
if (closure_10) {
num = 500;
if (tmp2 < 500) {
num2 = 0;
if (0 === arg0.contentOffset.x) {
tmp3 = closure_2;
if (0 !== closure_2.get()) {
tmp10 = closure_0;
tmp11 = closure_2;
num4 = 4;
obj = closure_0(closure_2[4]);
tmp12 = closure_0;
tmp13 = closure_2;
tmp14 = width;
flag = false;
tmp15 = obj;
scrollToResult = obj.scrollTo(closure_0, closure_2.get() * width, arg0.contentOffset.y, false);
}
return;
}
}
}
tmp4 = 0 === closure_7.get();
if (tmp4) {
tmp5 = closure_4;
tmp4 = 0 === closure_4.get();
}
if (tmp4) {
tmp6 = closure_5;
num3 = -1;
tmp4 = -1 === closure_5.get();
}
if (!tmp4) {
tmp7 = closure_2;
tmp8 = width;
onScrollResult = closure_2.onScroll(arg0.contentOffset.x / width);
}
return;
}
}
obj2 = { contentSizeLastChangedAt: sharedValue, IS_ANDROID: closure_10, selectedIndex, scrollTo: sources(selectedIndex[4]).scrollTo, ref: animatedRef, screenWidth: width, viewerScrolling: closure_7, thumbnailsScrolling: React, thumbnailsAnimateTo: closure_5, onScrollWorklets: memo };
S.__closure = obj2;
S.__workletHash = 7511342747846;
S.__initData = closure_32;
obj1.onScroll = S;
({ onMomentumBegin: obj9.onMomentumBegin, onMomentumEnd: obj9.onMomentumEnd } = memo);
const items = [animatedRef, width, sharedValue];
const obj8 = sources(selectedIndex[4]);
const items1 = [width, size.height, animatedRef];
const callback = React.useCallback(() => {
const current = animatedRef.current;
if (null != current) {
current.scrollTo(tmp, false);
}
const result = sharedValue.set(Date.now());
}, items);
const effect = React.useEffect(() => {
const current = animatedRef.current;
if (null != current) {
current.reset();
}
}, items1);
const animatedScrollHandler = sources(selectedIndex[4]).useAnimatedScrollHandler(obj1);
return {
ref: animatedRef,
onScroll: sources(selectedIndex[4]).useAnimatedScrollHandler(obj1),
onContentSizeChange: callback,
useItemVisible: React.useCallback((index) => {
const animatedRef = index;
const tmp = sharedValue(React.useState(index === memo.get()), 2);
const width = tmp2;
let obj = animatedRef(memo[4]);
const fn = function o() { ... };
fn.__closure = { index, selectedIndex: memo };
fn.__workletHash = 16337538404179;
fn.__initData = closure_33;
const fn2 = function l() { ... };
obj = { runOnJS: animatedRef(memo[4]).runOnJS, setVisible: tmp2 };
fn2.__closure = obj;
fn2.__workletHash = 17035713313425;
fn2.__initData = closure_34;
const animatedReaction = obj.useAnimatedReaction(fn, fn2);
return tmp[0];
}, [])
};
},
onEndReached,
onEndReachedThreshold
};
}({ sources: arr, animProps: memo, thumbnailScrollPositions: items, onEndReached, onEndReachedThreshold });
}, items1);
};