Files
discord-decomp/sources/modules/media_viewer/native/useMediaViewerSyncer.tsx
T
2026-07-27 16:20:00 +03:00

908 lines
50 KiB
TypeScript

/* Metro module 9560; source: modules/media_viewer/native/useMediaViewerSyncer.tsx; dependencies: [57, 31, 9561, 477, 4017, 9562, 1585, 9547, 9563, 9546, 4577, 2] */
function _fun74641(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#74641, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:6, offset: 0x01d949db, size: 609 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
const env0_4 = importAll(31) /* metro dependency 31 */;
const constantsModule = require(9561) /* metro dependency 9561: Constants */;
const env0_5 = constantsModule.THUMBNAIL_MARGIN;
const env0_6 = constantsModule.THUMBNAIL_HEIGHT;
const env0_7 = constantsModule.THUMBNAIL_MAX_WIDTH;
const env0_8 = constantsModule.THUMBNAIL_MIN_WIDTH;
const env0_9 = constantsModule.THUMBNAIL_WIDTH_MARGIN;
const env0_10 = (require(477) /* metro dependency 477: PlatformUtils */).isAndroid();
object = {code: "function useMediaViewerSyncerTsx1(){const{thumbnailsScrolling,SCROLLING_DRAG,swipeSource}=this.__closure;thumbnailsScrolling.set(thumbnailsScrolling.get()|SCROLLING_DRAG);swipeSource.set('thumbnails');}"};
object = {code: 'function useMediaViewerSyncerTsx2(){const{thumbnailsScrolling,SCROLLING_DRAG}=this.__closure;thumbnailsScrolling.set(thumbnailsScrolling.get()&~SCROLLING_DRAG);}'};
object = {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)();}}"};
object = {code: "function useMediaViewerSyncerTsx4(){const{thumbnailsScrolling,SCROLLING_MOMENTUM,swipeSource}=this.__closure;thumbnailsScrolling.set(thumbnailsScrolling.get()|SCROLLING_MOMENTUM);swipeSource.set('thumbnails');}"};
object = {code: 'function useMediaViewerSyncerTsx5(){const{thumbnailsScrolling,SCROLLING_MOMENTUM}=this.__closure;thumbnailsScrolling.set(thumbnailsScrolling.get()&~SCROLLING_MOMENTUM);}'};
object = {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);}}'};
object = {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);}}}'};
object = {code: "function useMediaViewerSyncerTsx8(){const{thumbnailsScrolling,interpolate,viewerPos,interpolateInput,interpolateOutput}=this.__closure;return thumbnailsScrolling.get()>0?0:-interpolate(viewerPos.get(),interpolateInput,interpolateOutput,'clamp');}"};
object = {code: 'function useMediaViewerSyncerTsx9(){const{viewerScrolling,headerBufferSize,margin,withSpring}=this.__closure;return{width:viewerScrolling.get()>0?headerBufferSize+margin.get():withSpring(headerBufferSize+margin.get(),{overshootClamping:true})};}'};
object = {code: 'function useMediaViewerSyncerTsx10(){const{viewerScrolling,footerBufferSize,margin,withSpring}=this.__closure;return{width:viewerScrolling.get()>0?footerBufferSize+margin.get():withSpring(footerBufferSize+margin.get(),{overshootClamping:true})};}'};
object = {code: "function useMediaViewerSyncerTsx11(){const{interpolate,viewerPos,index}=this.__closure;return interpolate(viewerPos.get(),[index-1,index,index+1],[0.4,1,0.4],'clamp');}"};
object = {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');}"};
object = {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()};}'};
object = {code: 'function useMediaViewerSyncerTsx15(){const{zoomed}=this.__closure;return!zoomed.get();}'};
object = {code: 'function useMediaViewerSyncerTsx16(){const{thumbnailsAnimateTo,scrollTo,ref,screenWidth}=this.__closure;if(thumbnailsAnimateTo.get()===-1)return;scrollTo(ref,thumbnailsAnimateTo.get()*screenWidth,0,false);}'};
object = {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);}'};
object = {code: "function useMediaViewerSyncerTsx18(){const{viewerScrolling,SCROLLING_DRAG,swipeSource}=this.__closure;viewerScrolling.set(viewerScrolling.get()|SCROLLING_DRAG);swipeSource.set('viewer');}"};
object = {code: 'function useMediaViewerSyncerTsx19(){const{viewerScrolling,SCROLLING_DRAG}=this.__closure;viewerScrolling.set(viewerScrolling.get()&~SCROLLING_DRAG);}'};
object = {code: 'function useMediaViewerSyncerTsx20(pos){const{viewerPos}=this.__closure;viewerPos.set(pos);}'};
object = {code: "function useMediaViewerSyncerTsx21(){const{viewerScrolling,SCROLLING_MOMENTUM,swipeSource}=this.__closure;viewerScrolling.set(viewerScrolling.get()|SCROLLING_MOMENTUM);swipeSource.set('viewer');}"};
object = {code: 'function useMediaViewerSyncerTsx22(){const{viewerScrolling,SCROLLING_MOMENTUM}=this.__closure;viewerScrolling.set(viewerScrolling.get()&~SCROLLING_MOMENTUM);}'};
object = {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);}'};
object = {code: 'function useMediaViewerSyncerTsx24(){const{index,selectedIndex}=this.__closure;return index===selectedIndex.get();}'};
object = {code: 'function useMediaViewerSyncerTsx25(result,previous){const{runOnJS,setVisible}=this.__closure;if(previous==null||previous===result)return;runOnJS(setVisible)(result);}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/media_viewer/native/useMediaViewerSyncer.tsx');
exports.useMediaViewerSyncer = useMediaViewerSyncer;
}
function useMediaViewerSyncer({sources, initialIndex, onEndReached, onEndReachedThreshold}) { // fn#74642, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:7532, offset: 0x01d94c3c, size: 122 bytes, params: 2, frame: 17
const binding = env0_4;
return binding.useMemo(_fun74644, [sources, binding.useMemo(_fun74643, [initialIndex]), onEndReached,
onEndReachedThreshold]);
}
function _fun74643() { // fn#74643, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:7646, offset: 0x01d94cb6, size: 237 bytes, params: 1, frame: 18
const initialIndexBinding = initialIndex;
const object2 = {};
const value = environment.__proto__;
object2.selectedIndex = (require(4017) /* metro dependency 4017: ReanimatedRexport */).makeMutable(initialIndexBinding);
object2.thumbnailsIndex = (require(4017) /* metro dependency 4017: ReanimatedRexport */).makeMutable(initialIndexBinding);
object2.thumbnailsScrolling = (require(4017) /* metro dependency 4017: ReanimatedRexport */).makeMutable(0);
object2.thumbnailsAnimateTo = (require(4017) /* metro dependency 4017: ReanimatedRexport */).makeMutable(-1);
object2.viewerPos = (require(4017) /* metro dependency 4017: ReanimatedRexport */).makeMutable(initialIndexBinding);
object2.viewerScrolling = (require(4017) /* metro dependency 4017: ReanimatedRexport */).makeMutable(0);
object2.zoomed = (require(4017) /* metro dependency 4017: ReanimatedRexport */).makeMutable(false);
object2.swipeSource = (require(4017) /* metro dependency 4017: ReanimatedRexport */).makeMutable(undefined);
return object2;
}
function _fun74644() { // fn#74644, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:8019, offset: 0x01d94da3, size: 378 bytes, params: 1, frame: 34
var r9;
var r10;
var r22;
var r17;
var moduleValue;
var value4;
var Math;
var max;
var Math2;
var min;
var width;
var height;
var value5;
var value6;
var value7;
var value8;
var value9;
var floor;
var end;
var start;
var value10;
var value11;
const sourcesBinding = sources;
const items2 = [];
let length = sourcesBinding.length;
const value2 = 0;
if (value2 < length) {
r9 = value2;
r10 = value2;
while (true) {
moduleValue = require(9546) /* metro dependency 9546: MediaSourceUtil */;
value4 = moduleValue.flattenSource(sourcesBinding[r9]);
if (value4 != null) {
Math = global.Math;
max = Math.max;
Math2 = global.Math;
min = Math2.min;
width = value4.width;
height = value4.height;
value5 = width * (THUMBNAIL_HEIGHT / height);
value6 = Reflect.apply(min, Math2, [value5, THUMBNAIL_MAX_WIDTH]);
value7 = Reflect.apply(max, Math, [value6, THUMBNAIL_MIN_WIDTH]);
value8 = r10 + (value7 + 2 * THUMBNAIL_MARGIN);
value9 = value8 - r10;
if (value2 === r9) {
r22 = value2;
continue;
}
Math = global.Math;
floor = Math.floor;
end = items2[value2].end;
start = items2[value2].start;
value10 = Reflect.apply(floor, Math, [r10 + (value9 - (end - start)) / 2]);
r22 = value10;
items2.push({start: r10, end: value8, scrollStart: r22});
r17 = value8;
} else {
items2.push({start: r10, end: r10, scrollStart: r10});
r17 = r10;
}
value11 = typeof r9 === 'bigint' ? r9 + 1n : +r9 + 1;
length = sourcesBinding.length;
if (value11 < length) {
r9 = value11;
r10 = r17;
continue;
}
break;
}
}
return makeMediaViewerSyncer({sources: sourcesBinding, animProps: env0_4, thumbnailScrollPositions: items2,
onEndReached: onEndReached, onEndReachedThreshold: onEndReachedThreshold});
}
function makeMediaViewerSyncer({sources, animProps, thumbnailScrollPositions, onEndReached, onEndReachedThreshold}) { // fn#74645, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:8384, offset: 0x01d94f1d, size: 216 bytes, params: 2, frame: 9
const selectedIndex = animProps.selectedIndex;
const env0_3 = animProps.thumbnailsIndex;
const env0_4 = animProps.thumbnailsScrolling;
const env0_5 = animProps.thumbnailsAnimateTo;
const env0_6 = animProps.viewerPos;
const env0_7 = animProps.viewerScrolling;
const zoomed = animProps.zoomed;
const env0_9 = animProps.swipeSource;
if (thumbnailScrollPositions.length > 0) {
thumbnailScrollPositions[0].end;
thumbnailScrollPositions[0].start;
}
return {index: selectedIndex, sources: sources, zoomed: zoomed, thumbnailScrollPositions: thumbnailScrollPositions,
variableWidthThumbnailsEnabled: false, useThumbnailsProps: useThumbnailsProps, useViewerProps: useViewerProps,
onEndReached: onEndReached, onEndReachedThreshold: onEndReachedThreshold};
}
function useThumbnailsProps(a0, a1) { // fn#74646, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:8810, owner: makeMediaViewerSyncer.useThumbnailsProps, offset: 0x01d94ff5, size: 1441 bytes, params: 3, frame: 36
var environment;
const env0_0 = a0;
const env0_1 = a1;
const value = environment.__proto__.__proto__.__proto__;
const value2 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useAnimatedRef();
const {width,
height} = (require(9562) /* metro dependency 9562: MediaViewerDimensionsContext */).useMediaViewerDimensions();
const value4 = (importDefault(1585) /* metro dependency 1585: useSafeAreaInsetsNative */)();
let closure = onSelectedIndexChange;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedScrollHandler = reanimatedRexportModule.useAnimatedScrollHandler;
let object2 = {};
const closure2 = function() {
var thumbnailsScrollingBinding = thumbnailsScrolling;
thumbnailsScrollingBinding.set(2 | thumbnailsScrollingBinding.get());
swipeSource.set('thumbnails');
};
let thumbnailsScrollingBinding = thumbnailsScrolling;
const swipeSourceBinding = swipeSource;
closure2.__closure = {thumbnailsScrolling: thumbnailsScrollingBinding, SCROLLING_DRAG: 2,
swipeSource: swipeSourceBinding};
closure2.__workletHash = 16224520186325;
closure2.__initData = env3_11;
object2.onBeginDrag = closure2;
const closure3 = onEndDrag_74649;
closure3.__closure = {thumbnailsScrolling: thumbnailsScrollingBinding, SCROLLING_DRAG: 2};
closure3.__workletHash = 5779899826871;
closure3.__initData = env3_12;
object2.onEndDrag = closure3;
const closure4 = onScroll_74650;
const object3 = {variableWidthThumbnailsEnabled: false};
const thumbnailScrollPositionsBinding = thumbnailScrollPositions;
object3.thumbnailScrollPositions = thumbnailScrollPositionsBinding;
object3.thumbnailSize = a0;
object3.swipeSource = swipeSourceBinding;
object3.maxIndex = a1;
const thumbnailsIndexBinding = thumbnailsIndex;
object3.thumbnailsIndex = thumbnailsIndexBinding;
const thumbnailsAnimateToBinding = thumbnailsAnimateTo;
object3.thumbnailsAnimateTo = thumbnailsAnimateToBinding;
object3.selectedIndex = selectedIndex;
const viewerScrollingBinding = viewerScrolling;
object3.viewerScrolling = viewerScrollingBinding;
object3.thumbnailsScrolling = thumbnailsScrollingBinding;
const runOnJS = reanimatedRexportModule.runOnJS;
object3.runOnJS = runOnJS;
object3.onSelectedIndexChange = closure;
closure4.__closure = object3;
closure4.__workletHash = 10605529664479;
closure4.__initData = env3_13;
object2.onScroll = closure4;
closure = function() {
var thumbnailsScrollingBinding = thumbnailsScrolling;
thumbnailsScrollingBinding.set(4 | thumbnailsScrollingBinding.get());
swipeSource.set('thumbnails');
};
closure.__closure = {thumbnailsScrolling: thumbnailsScrollingBinding, SCROLLING_MOMENTUM: 4,
swipeSource: swipeSourceBinding};
closure.__workletHash = 4138169755088;
closure.__initData = env3_14;
object2.onMomentumBegin = closure;
closure = onMomentumEnd_74652;
closure.__closure = {thumbnailsScrolling: thumbnailsScrollingBinding, SCROLLING_MOMENTUM: 4};
closure.__workletHash = 1471443652144;
closure.__initData = env3_15;
object2.onMomentumEnd = closure;
const value6 = Reflect.apply(useAnimatedScrollHandler, reanimatedRexportModule, [object2]);
const binding = env3_4;
const value7 = binding.useCallback(function(a0) {
if (!zoomed.get()) {
thumbnailsAnimateTo.set(a0);
swipeSource.set('thumbnails');
}
}, []);
const value8 = binding.useCallback(_fun74654, [value2]);
const moduleValue4 = reanimatedRexportModule;
let useDerivedValue = moduleValue4.useDerivedValue;
closure = useThumbnailsPropsR;
object2 = {thumbnailsAnimateTo: thumbnailsAnimateToBinding, variableWidthThumbnailsEnabled: false};
object2.runOnJS = runOnJS;
object2.scrollVarWidthThumbnails = value8;
const scrollTo = reanimatedRexportModule.scrollTo;
object2.scrollTo = scrollTo;
object2.ref = value2;
object2.thumbnailSize = a0;
closure.__closure = object2;
closure.__workletHash = 1697086875584;
closure.__initData = env3_16;
Reflect.apply(useDerivedValue, moduleValue4, [closure]);
const value9 = binding.useCallback(_fun74656, [value2]);
const moduleValue5 = reanimatedRexportModule;
useDerivedValue = moduleValue5.useDerivedValue;
closure = useThumbnailsPropsZ;
const viewerPosBinding = viewerPos;
closure.__closure = {viewerScrolling: viewerScrollingBinding, thumbnailsIndex: thumbnailsIndexBinding,
viewerPos: viewerPosBinding, variableWidthThumbnailsEnabled: false, runOnJS: runOnJS,
lerpScrollVarWidthThumbnails: value9, scrollTo: scrollTo, ref: value2, thumbnailSize: a0};
closure.__workletHash = 10477949154269;
closure.__initData = env3_17;
Reflect.apply(useDerivedValue, moduleValue5, [closure]);
const sourcesBinding = sources;
const value10 = sourcesBinding.map(function(a0, a1) {
return a1;
});
const value11 = sourcesBinding.map(_fun74659);
const moduleValue6 = reanimatedRexportModule;
useDerivedValue = moduleValue6.useDerivedValue;
closure = ee;
object2 = {thumbnailsScrolling: thumbnailsScrollingBinding};
object2.interpolate = reanimatedRexportModule.interpolate;
object2.viewerPos = viewerPosBinding;
object2.interpolateInput = value10;
object2.interpolateOutput = value11;
closure.__closure = object2;
closure.__workletHash = 10097839523885;
closure.__initData = env3_18;
const value12 = Reflect.apply(useDerivedValue, moduleValue6, [closure]);
const value14 = (width - a0) / 2 - value4.left;
const moduleValue7 = reanimatedRexportModule;
let useAnimatedStyle = moduleValue7.useAnimatedStyle;
closure = useThumbnailsPropsTe;
object2 = {viewerScrolling: viewerScrollingBinding, headerBufferSize: value14, margin: value12};
const withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.withSpring = withSpring;
closure.__closure = object2;
closure.__workletHash = 11328769587377;
closure.__initData = env3_19;
const value15 = Reflect.apply(useAnimatedStyle, moduleValue7, [closure]);
thumbnailScrollPositionsBinding[thumbnailScrollPositionsBinding.length - 1];
const value17 = (width - a0) / 2 - value4.right;
const moduleValue8 = reanimatedRexportModule;
useAnimatedStyle = moduleValue8.useAnimatedStyle;
closure = useThumbnailsPropsNe;
closure.__closure = {viewerScrolling: viewerScrollingBinding, footerBufferSize: value17, margin: value12,
withSpring: withSpring};
closure.__workletHash = 10532164558483;
closure.__initData = env3_20;
const value18 = Reflect.apply(useAnimatedStyle, moduleValue8, [closure]);
const value19 = binding.useCallback(_fun74663, []);
const moduleValue9 = reanimatedRexportModule;
useDerivedValue = moduleValue9.useDerivedValue;
closure = function() {
return !zoomed.get();
};
closure.__closure = {zoomed: zoomed};
closure.__workletHash = 7667674289153;
closure.__initData = env3_24;
return {ref: value2, headerBufferStyle: value15, headerBufferSize: value14, footerBufferStyle: value18,
footerBufferSize: value17, scrollEnabled: Reflect.apply(useDerivedValue, moduleValue9, [closure]),
onScroll: value6, onSelect: value7, useThumbnailStyle: value19, screenWidth: width, screenHeight: height,
itemSize: function(a0, a1) {
return THUMBNAIL_WIDTH_MARGIN;
}};
}
function useViewerProps() { // fn#74669, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:13806, owner: makeMediaViewerSyncer.useViewerProps, offset: 0x01d95fe2, size: 658 bytes, params: 1, frame: 31
var environment;
let value = environment.__proto__.__proto__.__proto__;
const value2 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useAnimatedRef();
const {width,
height} = (require(9562) /* metro dependency 9562: MediaViewerDimensionsContext */).useMediaViewerDimensions();
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
let useDerivedValue = reanimatedRexportModule.useDerivedValue;
let closure = useViewerPropsI;
let object2 = {};
const thumbnailsAnimateToBinding = thumbnailsAnimateTo;
object2.thumbnailsAnimateTo = thumbnailsAnimateToBinding;
const scrollTo = reanimatedRexportModule.scrollTo;
object2.scrollTo = scrollTo;
object2.ref = value2;
object2.screenWidth = width;
closure.__closure = object2;
closure.__workletHash = 11860326453239;
closure.__initData = env3_25;
Reflect.apply(useDerivedValue, reanimatedRexportModule, [closure]);
const moduleValue4 = reanimatedRexportModule;
useDerivedValue = moduleValue4.useDerivedValue;
closure = useViewerPropsL;
const thumbnailsScrollingBinding = thumbnailsScrolling;
const viewerScrollingBinding = viewerScrolling;
closure.__closure = {thumbnailsScrolling: thumbnailsScrollingBinding, viewerScrolling: viewerScrollingBinding,
thumbnailsAnimateTo: thumbnailsAnimateToBinding, scrollTo: scrollTo, ref: value2,
thumbnailsIndex: thumbnailsIndex, screenWidth: width};
closure.__workletHash = 16855593341498;
closure.__initData = env3_26;
Reflect.apply(useDerivedValue, moduleValue4, [closure]);
const binding = env3_4;
const value5 = binding.useMemo(_fun74672, []);
const value6 = reanimatedRexportModule.useSharedValue(0);
const moduleValue6 = reanimatedRexportModule;
const useAnimatedScrollHandler = moduleValue6.useAnimatedScrollHandler;
object2 = {};
object2.onBeginDrag = value5.onBeginDrag;
object2.onEndDrag = value5.onEndDrag;
closure = onScroll_74678;
closure.__closure = {contentSizeLastChangedAt: value6, IS_ANDROID: env3_10, selectedIndex: selectedIndex,
scrollTo: scrollTo, ref: value2, screenWidth: width, viewerScrolling: viewerScrollingBinding,
thumbnailsScrolling: thumbnailsScrollingBinding, thumbnailsAnimateTo: thumbnailsAnimateToBinding,
onScrollWorklets: value5};
closure.__workletHash = 7511342747846;
closure.__initData = env3_32;
object2.onScroll = closure;
object2.onMomentumBegin = value5.onMomentumBegin;
object2.onMomentumEnd = value5.onMomentumEnd;
value = Reflect.apply(useAnimatedScrollHandler, moduleValue6, [object2]);
const value7 = binding.useCallback(_fun74679, [value2, width, value6]);
binding.useEffect(_fun74680, [width, height, value2]);
return {ref: value2, onScroll: value, onContentSizeChange: value7, useItemVisible: binding.useCallback(_fun74681,
[])};
}
function onSelectedIndexChange() { // fn#74647, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:8960, owner: makeMediaViewerSyncer.useThumbnailsProps.onSelectedIndexChange, offset: 0x01d95596, size: 245 bytes, params: 1, frame: 14
const MediaViewerAnalytics = (require(9547) /* metro dependency 9547: MediaViewerAnalyticsManager */).MediaViewerAnalytics;
const IncrementableMediaViewerActions = (require(9547) /* metro dependency 9547: MediaViewerAnalyticsManager */).IncrementableMediaViewerActions;
let value = environment.__proto__;
if (swipeSource.get() === 'thumbnails') {
value = environment.__proto__.__proto__.__proto__.__proto__;
MediaViewerAnalytics.markActionPerformed(IncrementableMediaViewerActions.THUMBNAIL_SWIPE);
} else {
value = swipeSource.get();
if (value === 'viewer') {
value = environment.__proto__.__proto__.__proto__.__proto__;
MediaViewerAnalytics.markActionPerformed(IncrementableMediaViewerActions.VIEWER_SWIPE);
}
}
value = environment.__proto__.__proto__.__proto__.__proto__;
const markActionPerformed = MediaViewerAnalytics.markActionPerformed;
const SELECTED_ITEM_CHANGE = IncrementableMediaViewerActions.SELECTED_ITEM_CHANGE;
Reflect.apply(markActionPerformed, MediaViewerAnalytics, [SELECTED_ITEM_CHANGE]);
}
function useThumbnailsPropsOnEndDrag() { // fn#74649, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:9557, owner: makeMediaViewerSyncer.useThumbnailsProps.onEndDrag, offset: 0x01d956c4, size: 40 bytes, params: 1, frame: 12
const value = environment.__proto__;
const thumbnailsScrollingBinding = thumbnailsScrolling;
thumbnailsScrollingBinding.set(-3 & thumbnailsScrollingBinding.get());
}
function useThumbnailsPropsOnScroll({contentOffset}) { // fn#74650, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:9700, owner: makeMediaViewerSyncer.useThumbnailsProps.onScroll, offset: 0x01d956ec, size: 427 bytes, params: 2, frame: 18
var r2;
var Math;
var abs;
var Math2;
var max;
var Math3;
var thumbnailsIndexBinding;
var set;
var viewerScrollingBinding;
var value12;
var selectedIndexBinding;
var value14;
var moduleValue;
const x = contentOffset.x;
var value;
const value2 = x / env0_0;
if (swipeSource.get() === 'thumbnails') {
Math = global.Math;
max = Math.max;
Math3 = global.Math;
thumbnailsIndex.set(Reflect.apply(max, Math, [0, Math3.min(global.Math.round(value2), require)]));
} else {
Math = global.Math;
abs = Math.abs;
Math2 = global.Math;
if (Reflect.apply(abs, Math, [Math2.round(value2) - value2]) < 0.01) {
Math = global.Math;
max = Math.max;
Math3 = global.Math;
thumbnailsIndex.set(Reflect.apply(max, Math, [0, Math3.min(global.Math.round(value2), require)]));
}
}
if (thumbnailsAnimateTo.get() >= 0) {
value = thumbnailsIndex.get();
thumbnailsAnimateToBinding = thumbnailsAnimateTo;
if (value === thumbnailsAnimateToBinding.get()) {
thumbnailsAnimateTo.set(-1);
selectedIndexBinding = selectedIndex;
set = selectedIndexBinding.set;
thumbnailsIndexBinding = thumbnailsIndex;
Reflect.apply(set, selectedIndexBinding, [thumbnailsIndexBinding.get()]);
}
} else {
viewerScrollingBinding = viewerScrolling;
r2 = viewerScrollingBinding.get() !== 0 || thumbnailsScrolling.get() !== 0;
if (r2) {
value12 = thumbnailsIndex.get();
selectedIndexBinding = selectedIndex;
r2 = value12 !== selectedIndexBinding.get();
}
if (r2) {
selectedIndexBinding = selectedIndex;
set = selectedIndexBinding.set;
thumbnailsIndexBinding = thumbnailsIndex;
Reflect.apply(set, selectedIndexBinding, [thumbnailsIndexBinding.get()]);
value14 = environment.__proto__.__proto__.__proto__.__proto__;
moduleValue = require(4017) /* metro dependency 4017: ReanimatedRexport */;
moduleValue.runOnJS(onSelectedIndexChange)();
}
}
}
function useThumbnailsPropsOnMomentumEnd() { // fn#74652, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:10545, owner: makeMediaViewerSyncer.useThumbnailsProps.onMomentumEnd, offset: 0x01d958d0, size: 40 bytes, params: 1, frame: 12
const value = environment.__proto__;
const thumbnailsScrollingBinding = thumbnailsScrolling;
thumbnailsScrollingBinding.set(-5 & thumbnailsScrollingBinding.get());
}
function _fun74654(a0) { // fn#74654, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:10766, offset: 0x01d95934, size: 71 bytes, params: 2, frame: 18
let value = environment.__proto__;
const scrollStart = thumbnailScrollPositions[a0].scrollStart;
value = environment.__proto__.__proto__.__proto__.__proto__;
(require(4017) /* metro dependency 4017: ReanimatedRexport */).scrollTo(env0_2, scrollStart, 0, true);
}
function useThumbnailsPropsR() { // fn#74655, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:10855, owner: makeMediaViewerSyncer.useThumbnailsProps.R, offset: 0x01d9597b, size: 96 bytes, params: 1, frame: 18
var value3;
var moduleValue;
const value = environment.__proto__;
if (!(thumbnailsAnimateTo.get() < 0)) {
value3 = environment.__proto__.__proto__.__proto__.__proto__;
moduleValue = require(4017) /* metro dependency 4017: ReanimatedRexport */;
moduleValue.scrollTo(env0_2, thumbnailsAnimateTo.get() * env0_0, 0, true);
}
}
function _fun74656(a0) { // fn#74656, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:11152, offset: 0x01d959db, size: 85 bytes, params: 2, frame: 18
let value = environment.__proto__.__proto__.__proto__.__proto__;
value = Reflect.apply((require(9563) /* metro dependency 9563: portraitThumbnailHelpers */).lerpVarWidthThumbnailScrollBounds,
value, [thumbnailScrollPositions, a0]);
(require(4017) /* metro dependency 4017: ReanimatedRexport */).scrollTo(env0_2, value, 0, false);
}
function useThumbnailsPropsZ() { // fn#74657, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:11271, owner: makeMediaViewerSyncer.useThumbnailsProps.Z, offset: 0x01d95a30, size: 132 bytes, params: 1, frame: 18
var r0;
var value4;
var viewerPosBinding;
var value6;
var moduleValue;
const value = environment.__proto__;
const value3 = viewerScrolling.get() !== 0;
if (value3) {
value4 = thumbnailsIndex.get();
viewerPosBinding = viewerPos;
r0 = value4 !== viewerPosBinding.get();
} else {
r0 = value3;
}
if (r0) {
value6 = environment.__proto__.__proto__.__proto__.__proto__;
moduleValue = require(4017) /* metro dependency 4017: ReanimatedRexport */;
moduleValue.scrollTo(env0_2, viewerPos.get() * env0_0, 0, false);
}
}
function _fun74659(a0) { // fn#74659, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:11643, offset: 0x01d95ab4, size: 129 bytes, params: 2, frame: 18
var r0;
var Math;
var max;
var Math2;
let value = environment.__proto__.__proto__.__proto__.__proto__;
const value2 = (require(9546) /* metro dependency 9546: MediaSourceUtil */).flattenSource(a0);
if (value2 == null) {
r0 = 0;
} else {
Math = global.Math;
max = Math.max;
Math2 = global.Math;
value = Reflect.apply(max, Math,
[Math2.min(value2.width * (THUMBNAIL_HEIGHT / value2.height), THUMBNAIL_MAX_WIDTH), THUMBNAIL_MIN_WIDTH]) - THUMBNAIL_MIN_WIDTH;
value /= 2;
r0 = value;
}
return r0;
}
function ee() { // fn#74660, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:11781, owner: makeMediaViewerSyncer.useThumbnailsProps.ee, offset: 0x01d95b35, size: 96 bytes, params: 1, frame: 18
var r0;
var value4;
var moduleValue;
var interpolate;
let value = environment.__proto__;
const value2 = thumbnailsScrolling.get();
const value3 = 0;
if (value2 > value3) {
r0 = value3;
} else {
value4 = environment.__proto__.__proto__.__proto__.__proto__;
moduleValue = require(4017) /* metro dependency 4017: ReanimatedRexport */;
interpolate = moduleValue.interpolate;
value = viewerPos.get();
value = -Reflect.apply(interpolate, moduleValue, [value, env0_4, env0_5, 'clamp']);
r0 = value;
}
return r0;
}
function useThumbnailsPropsTe() { // fn#74661, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:12064, owner: makeMediaViewerSyncer.useThumbnailsProps.te, offset: 0x01d95b95, size: 125 bytes, params: 1, frame: 15
var r1;
var withSpring;
var binding;
var binding2;
var binding3;
let value = environment.__proto__;
value = viewerScrolling.get();
if (value > 0) {
binding = env0_7;
binding3 = env0_6;
r1 = binding + binding3.get();
} else {
value = environment.__proto__.__proto__.__proto__.__proto__;
value = require(4577) /* metro dependency 4577: spring */;
withSpring = value.withSpring;
binding = env0_7;
binding2 = env0_6;
value = Reflect.apply(withSpring, value, [binding + binding2.get(), {overshootClamping: true}]);
r1 = value;
}
return {width: r1};
}
function useThumbnailsPropsNe() { // fn#74662, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:12368, owner: makeMediaViewerSyncer.useThumbnailsProps.ne, offset: 0x01d95c12, size: 125 bytes, params: 1, frame: 15
var r1;
var withSpring;
var binding;
var binding2;
var binding3;
let value = environment.__proto__;
value = viewerScrolling.get();
if (value > 0) {
binding = env0_8;
binding3 = env0_6;
r1 = binding + binding3.get();
} else {
value = environment.__proto__.__proto__.__proto__.__proto__;
value = require(4577) /* metro dependency 4577: spring */;
withSpring = value.withSpring;
binding = env0_8;
binding2 = env0_6;
value = Reflect.apply(withSpring, value, [binding + binding2.get(), {overshootClamping: true}]);
r1 = value;
}
return {width: r1};
}
function _fun74663({width, height}, a1) { // fn#74663, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:12622, offset: 0x01d95c8f, size: 419 bytes, params: 3, frame: 27
var object2;
const env0_0 = a1;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
let useDerivedValue = reanimatedRexportModule.useDerivedValue;
let closure = i_74664;
const interpolate = reanimatedRexportModule.interpolate;
const viewerPosBinding = viewerPos;
closure.__closure = {interpolate: interpolate, viewerPos: viewerPosBinding, index: a1};
closure.__workletHash = 5784737783661;
closure.__initData = env4_21;
const value3 = Reflect.apply(useDerivedValue, reanimatedRexportModule, [closure]);
const Math = global.Math;
const max = Math.max;
const Math2 = global.Math;
const value6 = Reflect.apply(max, Math,
[Math2.min(width * (THUMBNAIL_HEIGHT / height), THUMBNAIL_MAX_WIDTH), THUMBNAIL_MIN_WIDTH]);
const moduleValue2 = reanimatedRexportModule;
useDerivedValue = moduleValue2.useDerivedValue;
closure = l_74665;
closure.__closure = {thumbnailsScrolling: thumbnailsScrolling, THUMBNAIL_MIN_WIDTH: THUMBNAIL_MIN_WIDTH,
interpolate: interpolate, viewerPos: viewerPosBinding, index: a1, sourceWidth: value6};
closure.__workletHash = 12440745987072;
closure.__initData = env4_22;
const value7 = Reflect.apply(useDerivedValue, moduleValue2, [closure]);
const moduleValue3 = reanimatedRexportModule;
const useAnimatedStyle = moduleValue3.useAnimatedStyle;
closure = u_74666;
object2 = {};
object2.viewerScrolling = viewerScrolling;
object2._width = value7;
object2.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring;
object2.THUMBNAIL_HEIGHT = THUMBNAIL_HEIGHT;
object2.opacity = value3;
closure.__closure = object2;
closure.__workletHash = 513826663139;
closure.__initData = env4_23;
return Reflect.apply(useAnimatedStyle, moduleValue3, [closure]);
}
function useViewerPropsI() { // fn#74670, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:13938, owner: makeMediaViewerSyncer.useViewerProps.i, offset: 0x01d96274, size: 100 bytes, params: 1, frame: 17
var value3;
var moduleValue;
const value = environment.__proto__;
if (thumbnailsAnimateTo.get() !== -1) {
value3 = environment.__proto__.__proto__.__proto__.__proto__;
moduleValue = require(4017) /* metro dependency 4017: ReanimatedRexport */;
moduleValue.scrollTo(env0_0, thumbnailsAnimateTo.get() * width, 0, false);
}
}
function useViewerPropsL() { // fn#74671, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:14157, owner: makeMediaViewerSyncer.useViewerProps.l, offset: 0x01d962d8, size: 145 bytes, params: 1, frame: 18
var value7;
var moduleValue;
const value = environment.__proto__;
let r0 = thumbnailsScrolling.get() === 0 || viewerScrolling.get() > 0;
r0 = !r0 ? thumbnailsAnimateTo.get() !== -1 : r0;
if (!r0) {
value7 = environment.__proto__.__proto__.__proto__.__proto__;
moduleValue = require(4017) /* metro dependency 4017: ReanimatedRexport */;
moduleValue.scrollTo(env0_0, thumbnailsIndex.get() * width, 0, false);
}
}
function _fun74672() { // fn#74672, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:14449, offset: 0x01d96369, size: 315 bytes, params: 1, frame: 10
const object2 = {};
let closure = function() {
var viewerScrollingBinding = viewerScrolling;
viewerScrollingBinding.set(2 | viewerScrollingBinding.get());
swipeSource.set('viewer');
};
let viewerScrollingBinding = viewerScrolling;
const swipeSourceBinding = swipeSource;
closure.__closure = {viewerScrolling: viewerScrollingBinding, SCROLLING_DRAG: 2, swipeSource: swipeSourceBinding};
closure.__workletHash = 1082965969005;
closure.__initData = env4_27;
object2.onBeginDrag = closure;
closure = onEndDrag_74674;
closure.__closure = {viewerScrolling: viewerScrollingBinding, SCROLLING_DRAG: 2};
closure.__workletHash = 1722948238280;
closure.__initData = env4_28;
object2.onEndDrag = closure;
closure = function(a0) {
viewerPos.set(a0);
};
closure.__closure = {viewerPos: viewerPos};
closure.__workletHash = 3817181878424;
closure.__initData = env4_29;
object2.onScroll = closure;
closure = function() {
var viewerScrollingBinding = viewerScrolling;
viewerScrollingBinding.set(4 | viewerScrollingBinding.get());
swipeSource.set('viewer');
};
closure.__closure = {viewerScrolling: viewerScrollingBinding, SCROLLING_MOMENTUM: 4,
swipeSource: swipeSourceBinding};
closure.__workletHash = 16635271467463;
closure.__initData = env4_30;
object2.onMomentumBegin = closure;
closure = onMomentumEnd_74677;
closure.__closure = {viewerScrolling: viewerScrollingBinding, SCROLLING_MOMENTUM: 4};
closure.__workletHash = 8806989101472;
closure.__initData = env4_31;
object2.onMomentumEnd = closure;
return object2;
}
function useViewerPropsOnScroll(a0) { // fn#74678, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:15351, owner: makeMediaViewerSyncer.useViewerProps.onScroll, offset: 0x01d9657e, size: 281 bytes, params: 2, frame: 20
var r4;
var selectedIndexBinding;
var moduleValue;
var scrollTo;
const Date = global.Date;
let value = Date.now();
let binding = env0_3;
const get = binding.get;
value -= Reflect.apply(get, binding, []);
if (env4_10) {
if (value < 500) {
if (a0.contentOffset.x !== 0) {
value = environment.__proto__;
r4 = viewerScrolling.get() === 0 && thumbnailsScrolling.get() === 0;
if (r4) {
value = thumbnailsAnimateTo.get();
value = value === -1;
r4 = value;
}
if (!r4) {
binding = env0_2;
binding.onScroll(a0.contentOffset.x / width);
}
} else {
value = environment.__proto__;
selectedIndexBinding = selectedIndex;
if (selectedIndexBinding.get() !== 0) {
moduleValue = require(4017) /* metro dependency 4017: ReanimatedRexport */;
scrollTo = moduleValue.scrollTo;
binding = env0_0;
value = selectedIndex.get();
value *= width;
Reflect.apply(scrollTo, moduleValue, [binding, value, a0.contentOffset.y, false]);
} else {
value = environment.__proto__;
r4 = viewerScrolling.get() === 0 && thumbnailsScrolling.get() === 0;
if (r4) {
value = thumbnailsAnimateTo.get();
value = value === -1;
r4 = value;
}
if (!r4) {
binding = env0_2;
binding.onScroll(a0.contentOffset.x / width);
}
}
}
} else {
value = environment.__proto__;
r4 = viewerScrolling.get() === 0 && thumbnailsScrolling.get() === 0;
if (r4) {
value = thumbnailsAnimateTo.get();
value = value === -1;
r4 = value;
}
if (!r4) {
binding = env0_2;
binding.onScroll(a0.contentOffset.x / width);
}
}
} else {
value = environment.__proto__;
r4 = viewerScrolling.get() === 0 && thumbnailsScrolling.get() === 0;
if (r4) {
value = thumbnailsAnimateTo.get();
value = value === -1;
r4 = value;
}
if (!r4) {
binding = env0_2;
binding.onScroll(a0.contentOffset.x / width);
}
}
}
function _fun74679() { // fn#74679, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:15885, offset: 0x01d96697, size: 91 bytes, params: 1, frame: 14
let value = environment.__proto__;
value = selectedIndex.get();
value *= width;
const current = env0_0.current;
if (current != null) {
current.scrollTo(value, false);
}
const binding = env0_3;
const set = binding.set;
const Date = global.Date;
Reflect.apply(set, binding, [Date.now()]);
}
function _fun74680() { // fn#74680, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:15988, offset: 0x01d966f2, size: 32 bytes, params: 1, frame: 9
const current = env0_0.current;
if (current != null) {
current.reset();
}
}
function _fun74681(a0) { // fn#74681, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:16062, offset: 0x01d96712, size: 228 bytes, params: 2, frame: 23
var object2;
const env0_0 = a0;
const binding = env4_4;
const useState = binding.useState;
const selectedIndexBinding = selectedIndex;
const get = selectedIndexBinding.get;
const value4 = env4_3(Reflect.apply(useState, binding, [a0 === Reflect.apply(get, selectedIndexBinding, [])]), 2);
const property = value4[0];
const property2 = value4[1];
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
const closure = o_74682;
closure.__closure = {index: a0, selectedIndex: selectedIndexBinding};
closure.__workletHash = 16337538404179;
closure.__initData = env4_33;
const closure2 = l_74683;
object2 = {};
object2.runOnJS = reanimatedRexportModule.runOnJS;
object2.setVisible = property2;
closure2.__closure = object2;
closure2.__workletHash = 17035713313425;
closure2.__initData = env4_34;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
return property;
}
function i_74664() { // fn#74664, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:12670, offset: 0x01d95e32, size: 107 bytes, params: 1, frame: 18
let value = environment.__proto__.__proto__.__proto__.__proto__.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
return value.interpolate(viewerPos.get(), [require - 1, require, require + 1], [0.4, 1, 0.4], 'clamp');
}
function l_74665() { // fn#74665, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:12924, offset: 0x01d95e9d, size: 155 bytes, params: 1, frame: 20
var r0;
var value3;
var moduleValue;
var interpolate;
let value = environment.__proto__.__proto__;
if (thumbnailsScrolling.get() > 0) {
value = environment.__proto__.__proto__.__proto__.__proto__.__proto__;
r0 = THUMBNAIL_MIN_WIDTH;
} else {
value3 = environment.__proto__.__proto__.__proto__.__proto__.__proto__;
moduleValue = require(4017) /* metro dependency 4017: ReanimatedRexport */;
interpolate = moduleValue.interpolate;
value = viewerPos.get();
value = Reflect.apply(interpolate, moduleValue, [value, [require - 1, require, require + 1],
[THUMBNAIL_MIN_WIDTH,
env0_2, THUMBNAIL_MIN_WIDTH], 'clamp']);
r0 = value;
}
return r0;
}
function u_74666() { // fn#74666, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:13205, offset: 0x01d95f38, size: 140 bytes, params: 1, frame: 15
var r1;
const object2 = {};
let value = environment.__proto__.__proto__;
value = viewerScrolling.get();
if (value > 0) {
r1 = env0_3.get();
} else {
value = environment.__proto__.__proto__.__proto__.__proto__.__proto__;
value = require(4577) /* metro dependency 4577: spring */;
value = value.withSpring(env0_3.get(), {overshootClamping: true});
r1 = value;
}
object2.width = r1;
value = environment.__proto__.__proto__.__proto__.__proto__.__proto__;
object2.height = THUMBNAIL_HEIGHT;
object2.opacity = env0_1.get();
return object2;
}
function onEndDrag_74674() { // fn#74674, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:14644, offset: 0x01d964dd, size: 40 bytes, params: 1, frame: 12
const value = environment.__proto__.__proto__;
const viewerScrollingBinding = viewerScrolling;
viewerScrollingBinding.set(-3 & viewerScrollingBinding.get());
}
function onMomentumEnd_74677() { // fn#74677, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:15075, offset: 0x01d96556, size: 40 bytes, params: 1, frame: 12
const value = environment.__proto__.__proto__;
const viewerScrollingBinding = viewerScrolling;
viewerScrollingBinding.set(-5 & viewerScrollingBinding.get());
}
function o_74682() { // fn#74682, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:16162, offset: 0x01d967f6, size: 29 bytes, params: 1, frame: 10
const binding = env0_0;
const selectedIndexBinding = selectedIndex;
const get = selectedIndexBinding.get;
return binding === Reflect.apply(get, selectedIndexBinding, []);
}
function l_74683(a0, a1) { // fn#74683, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9746:16267, offset: 0x01d96813, size: 73 bytes, params: 3, frame: 13
let value = a1 != null;
if (value && a1 !== a0) {
value = environment.__proto__.__proto__.__proto__.__proto__.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value.runOnJS(env0_1)(a0);
}
}