Files
discord-decomp/sources/by-id/module-06491-MasonryFlashList.jsx
2026-07-28 01:06:53 +03:00

615 lines
29 KiB
React

/* Metro module 6491; source: unknown; dependencies: [6371, 6365, 31, 27, 33, 6436, 6441, 6442, 6426] */
import Module06365 from './module-06365.js'; /* Metro dependency 6365 */
import ObjectWithoutProperties from './module-06371-ObjectWithoutProperties.js'; /* Metro dependency 6371 */
import Module06426 from './module-06426.jsx'; /* Metro dependency 6426 */
import * as ReactNativeModule from './module-00027-ReactNative.js'; /* Metro dependency 27 */
import * as ReactModule from './module-00031-React.js'; /* Metro dependency 31 */
import * as JsxRuntimeModule from './module-00033-JsxRuntime.js'; /* Metro dependency 33 */
function _fun51108(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#51108, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:6, offset: 0x012294e4, size: 329 bytes, params: 8, frame: 19
let env0_0 = require;
let env0_3 = ['renderItem', 'getItemType', 'getColumnFlex', 'overrideItemLayout', 'viewabilityConfig',
'keyExtractor', 'onLoad', 'onViewableItemsChanged', 'data', 'stickyHeaderIndices', 'CellRendererComponent',
'ItemSeparatorComponent'];
let env0_4 = ['onLayout', 'onScroll'];
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = ReactModule;
const env0_7 = value.useCallback;
const env0_8 = value.useRef;
const env0_9 = value.useEffect;
const env0_10 = value.useMemo;
value = importDefault(31) /* metro dependency 31 */;
let value2 = ReactNativeModule;
const env0_12 = value2.View;
const env0_13 = value2.Dimensions;
value = value.forwardRef(_fun51109);
const useDataSet = function(a0, a1, a2, a3, a4) {
var env0_0 = a0;
var env0_1 = a1;
var env0_2 = a2;
var env0_3 = a3;
var env0_4 = a4;
return useMemo(_fun51123, [a2, a0, a1, a4]);
};
const useTotalColumnFlex = function(a0, a1) {
var env0_0 = a0;
var env0_1 = a1;
return useMemo(_fun51125, [a0, a1.getColumnFlex, a1.extraData]);
};
const useRefWithForwardRef = function(a0) {
var env0_0 = a0;
var value2 = useRef(null);
var env0_1 = value2;
var items = [value2];
items[1] = useCallback(_fun51127, [a0]);
return items;
};
const updateViewTokens = function(a0) {
var r2;
var r5;
var property;
var length = a0.length;
var value = 0;
if (value < length) {
r2 = value;
while (true) {
property = a0[r2];
value = property.index !== null;
r5 = value && property.index !== undefined;
if (!r5) {
continue;
}
if (property.item) {
property.index = property.item.originalIndex;
property.item = property.item.originalItem;
} else {
property.index = null;
property.item = undefined;
}
value = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1;
if (value < length) {
r2 = value;
continue;
}
break;
}
}
};
const getEmptyScrollEvent = function() {
return {nativeEvent: {contentOffset: {'y': 0, 'x': 0}}};
};
const getListRenderedSize = function(a0) {
return a0 == null || a0.current == null || a0.current.recyclerlistview_unsafe == null ? undefined : a0.current.recyclerlistview_unsafe.getRenderedSize();
};
value.displayName = 'MasonryFlashList';
exports.MasonryFlashList = value;
function _fun51109(a0, a1) { // fn#51109, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:506, offset: 0x0122962d, size: 744 bytes, params: 3, frame: 30
var r8;
var value;
var object;
var overrideItemLayout;
var overrideItemLayoutRequiredForMasonryOptimization;
var Boolean;
var value3;
var value4;
var data;
var value5;
var value6;
var value7;
var current;
var value9;
var value10;
var property;
var renderItem;
var getColumnFlex;
var value11;
var property2;
var value13;
var moduleValue;
var Object;
var assign;
var object2;
const env0_0 = a0;
let numColumns = a0.numColumns;
numColumns = !numColumns ? 1 : numColumns;
const env0_2 = a0.drawDistance;
let r11 = a0.estimatedListSize ?? Dimensions.get('window');
r11 = r11 ?? ({'height': 500, 'width': 500});
const env0_3 = r11;
let optimizeItemArrangement = a0.optimizeItemArrangement;
if (optimizeItemArrangement) {
overrideItemLayout = a0.overrideItemLayout;
if (overrideItemLayout) {
Boolean = global.Boolean;
optimizeItemArrangement = a0.optimizeItemArrangement;
value3 = undefined;
value4 = Boolean(optimizeItemArrangement);
data = a0.data;
overrideItemLayout = a0.overrideItemLayout;
value5 = useDataSet(numColumns, value4, data, overrideItemLayout, a0.extraData);
var env0_4 = useTotalColumnFlex(value5, a0);
value6 = useRef(a0);
var env0_5 = value6;
value6.current = a0;
value7 = useRef([]);
var env0_6 = value7;
current = useRef(getEmptyScrollEvent()).current;
current = useRef(getFlashListScrollView(value7, _fun51110)).current;
current = useRef(_fun51111).current;
var env0_10 = useRef(_fun51113).current;
value9 = env0_6(useRefWithForwardRef(a1), 2);
value10 = 0;
var env0_11 = value9[value10];
property = value9[1];
renderItem = a0.renderItem;
var env0_13 = a0.getItemType;
getColumnFlex = a0.getColumnFlex;
overrideItemLayout = a0.overrideItemLayout;
var env0_16 = a0.viewabilityConfig;
var env0_17 = a0.keyExtractor;
a0.onLoad;
var env0_18 = a0.onViewableItemsChanged;
a0.data;
a0.stickyHeaderIndices;
var env0_19 = a0.CellRendererComponent;
var env0_20 = a0.ItemSeparatorComponent;
value11 = env0_5(a0, env0_3);
property2 = value5[value10];
value13 = ((property2 == null ? value3 : property2.length) ?? value10) * (a0.estimatedItemSize ?? 100);
moduleValue = require(6442) /* metro dependency 6442 */;
var env0_21 = moduleValue.applyContentContainerInsetForLayoutManager({'height': 0, 'width': 0},
a0.contentContainerStyle, false);
value = importDefault(6426) /* metro dependency 6426 */;
Object = global.Object;
assign = Object.assign;
object = {ref: property};
object2 = {horizontal: false, numColumns: numColumns, data: value5, onScroll: current};
r8 = value13 || r11.height;
object2.estimatedItemSize = r8;
object2.renderItem = renderItem;
r8 = getColumnFlex ? _fun51121 : value3;
object2.overrideItemLayout = r8;
return ((Component) => <Component {...Reflect.apply(assign, Object, [object, value11, object2])} />)(value);
}
value = importDefault(6436) /* metro dependency 6436 */;
overrideItemLayoutRequiredForMasonryOptimization = (importDefault(6441) /* metro dependency 6441 */).overrideItemLayoutRequiredForMasonryOptimization;
value = new value();
throw value;
}
Boolean = global.Boolean;
optimizeItemArrangement = a0.optimizeItemArrangement;
value3 = undefined;
value5 = useDataSet(numColumns, Boolean(optimizeItemArrangement), a0.data, a0.overrideItemLayout, a0.extraData);
var env0_4 = useTotalColumnFlex(value5, a0);
value6 = useRef(a0);
var env0_5 = value6;
value6.current = a0;
value7 = useRef([]);
var env0_6 = value7;
const env0_7 = useRef(getEmptyScrollEvent()).current;
const env0_8 = useRef(getFlashListScrollView(value7, _fun51110)).current;
current = useRef(_fun51111).current;
var env0_10 = useRef(_fun51113).current;
value9 = env0_6(useRefWithForwardRef(a1), 2);
value10 = 0;
var env0_11 = value9[value10];
property = value9[1];
renderItem = a0.renderItem;
var env0_13 = a0.getItemType;
getColumnFlex = a0.getColumnFlex;
const env0_15 = a0.overrideItemLayout;
var env0_16 = a0.viewabilityConfig;
var env0_17 = a0.keyExtractor;
a0.onLoad;
var env0_18 = a0.onViewableItemsChanged;
a0.data;
a0.stickyHeaderIndices;
var env0_19 = a0.CellRendererComponent;
var env0_20 = a0.ItemSeparatorComponent;
value11 = env0_5(a0, env0_3);
property2 = value5[value10];
value13 = ((property2 == null ? value3 : property2.length) ?? value10) * (a0.estimatedItemSize ?? 100);
moduleValue = require(6442) /* metro dependency 6442 */;
var env0_21 = moduleValue.applyContentContainerInsetForLayoutManager({'height': 0, 'width': 0},
a0.contentContainerStyle, false);
value = importDefault(6426) /* metro dependency 6426 */;
Object = global.Object;
return ((Component) => <Component {...Object.assign({ref: property}, value11, {horizontal: false,
numColumns: numColumns, data: value5, onScroll: current, estimatedItemSize: value13 || r11.height,
renderItem: renderItem, overrideItemLayout: getColumnFlex ? _fun51121 : value3})} />)(value);
function _fun51110() { // fn#51110, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:939, offset: 0x01229915, size: 49 bytes, params: 1, frame: 12
const getListRenderedSizeBinding = getListRenderedSize;
const value2 = undefined;
const listRenderedSizeBinding = getListRenderedSizeBinding(env0_11);
let height = listRenderedSizeBinding == null ? value2 : listRenderedSizeBinding.height;
height = !height ? env0_3.height : height;
return height;
}
function _fun51111(a0) { // fn#51111, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:1022, offset: 0x01229946, size: 178 bytes, params: 2, frame: 17
const contentOffset = current.nativeEvent.contentOffset;
const y = a0.nativeEvent.contentOffset.y;
const current2 = env0_11.current;
const value2 = undefined;
contentOffset.y = y - ((current2 == null ? value2 : current2.firstItemOffset) ?? 0);
const current3 = env0_6.current;
if (current3 != null) {
current3.forEach(_fun51112);
}
if (!(a0.nativeEvent.doNotPropagate || env0_5.current.onScroll == null)) {
env0_5.current.onScroll(a0);
}
return value2;
function _fun51112(a0) { // fn#51112, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:1197, offset: 0x012299f8, size: 27 bytes, params: 2, frame: 11
var value;
if (a0 != null) {
value = environment.__proto__;
a0(current);
}
}
}
function _fun51113(a0) { // fn#51113, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:1320, offset: 0x01229a13, size: 75 bytes, params: 2, frame: 13
global.setTimeout(function() {
current.nativeEvent.doNotPropagate = true;
if (current != null) {
current(current);
}
current.nativeEvent.doNotPropagate = false;
}, 32);
if (env0_5.current.onLoad != null) {
env0_5.current.onLoad(a0);
}
}
function renderItem(a0) { // fn#51115, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:2083, offset: 0x01229aa2, size: 393 bytes, params: 2, frame: 26
var environment;
const env0_0 = a0;
let value = environment.__proto__;
const value2 = undefined;
const defaultImport = Module06426;
const defaultImportProps = {renderScrollComponent: current, estimatedItemSize: env0_0.estimatedItemSize,
data: a0.item, onLoad: a0.index !== 0 ? value2 : current, renderItem: renderItem_51116,
keyExtractor: keyExtractor ? _fun51117 : value2, getItemType: getItemType ? _fun51118 : value2,
drawDistance: drawDistance};
const object2 = {};
object2.height = env0_3.height;
value = getListRenderedSize(env0_11);
let width = value == null ? value2 : value.width;
width = !width ? env0_3.width : width;
value = width + env0_21.width;
value /= env0_4;
object2.width = value * ((getColumnFlex == null ? value2 : getColumnFlex(a0.item, a0.index, numColumns,
env0_0.extraData)) ?? 1);
defaultImportProps.estimatedListSize = object2;
defaultImportProps.extraData = env0_0.extraData;
defaultImportProps.CellRendererComponent = CellRendererComponent;
defaultImportProps.ItemSeparatorComponent = ItemSeparatorComponent;
defaultImportProps.viewabilityConfig = viewabilityConfig;
defaultImportProps.onViewableItemsChanged = onViewableItemsChanged ? function(a0) {
updateViewTokens(a0.viewableItems);
updateViewTokens(a0.changed);
if (onViewableItemsChanged != null) {
onViewableItemsChanged(a0);
}
} : value2;
defaultImportProps.overrideItemLayout = overrideItemLayout ? function(a0, a1, a2, a3, a4) {
if (overrideItemLayout != null) {
overrideItemLayout(a0, a1.originalItem, a1.originalIndex, numColumns, a4);
}
a0.span = undefined;
} : value2;
return ((Component) => <Component {...defaultImportProps} />)(defaultImport);
function renderItem_body(a0) { // fn#51116, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:2247, owner: renderItem.body, offset: 0x01229c2b, size: 127 bytes, params: 2, frame: 19
var r1;
var Object;
var assign;
var object;
var item;
const value = environment.__proto__;
let renderItemBinding = renderItem;
const value2 = null;
if (value2 == renderItemBinding) {
r1 = undefined;
} else {
renderItemBinding = renderItem;
Object = global.Object;
assign = Object.assign;
object = {};
item = a0.item;
object.item = item.originalItem;
item = a0.item;
object.index = item.originalIndex;
object.columnSpan = 1;
object.columnIndex = env0_0.index;
r1 = renderItemBinding(Reflect.apply(assign, Object, [{}, a0, object]));
}
return value2 != r1 ? r1 : value2;
}
function _fun51117(a0, a1) { // fn#51117, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:2441, offset: 0x01229caa, size: 47 bytes, params: 3, frame: 14
const value = environment.__proto__;
return keyExtractor?.(a0.originalItem, a0.originalIndex);
}
function _fun51118(a0, a1, a2) { // fn#51118, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:2533, offset: 0x01229cd9, size: 51 bytes, params: 4, frame: 16
const value = environment.__proto__;
return getItemType?.(a0.originalItem, a0.originalIndex, a2);
}
}
function _fun51121(a0, a1, a2, a3, a4) { // fn#51121, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:3108, offset: 0x01229d87, size: 54 bytes, params: 6, frame: 19
a0.span = numColumns * getColumnFlex(a1, a2, a3, a4) / env0_4;
}
}
function useDataSet(a0, a1, a2, a3, a4) { // fn#51122, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:3166, offset: 0x01229dbd, size: 79 bytes, params: 6, frame: 16
const env0_0 = a0;
const env0_1 = a1;
const env0_2 = a2;
const env0_3 = a3;
const env0_4 = a4;
return useMemo(_fun51123, [a2, a0, a1, a4]);
function _fun51123() { // fn#51123, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:3207, offset: 0x01229e0c, size: 375 bytes, params: 1, frame: 32
var r2;
var r3;
var r16;
var r17;
var r15;
var r12;
var length;
var value2;
var Array;
var binding;
var prototype;
var value3;
var array;
var value4;
var fill;
var value5;
var object;
var value6;
var value7;
var value8;
var value9;
var value10;
var property;
var value11;
var size;
var push;
var value12;
if (importDefault) {
length = importDefault.length;
value2 = 0;
reducibleJoin13: while (true) {
if (value2 !== length) {
Array = global.Array;
binding = env0_0;
prototype = Array.prototype;
value3 = Object.create(prototype, {constructor: {value: Array}});
array = new Array();
value4 = array instanceof Object ? array : value3;
fill = value4.fill;
value5 = Reflect.apply(fill, value4, [value2]);
object = {size: undefined};
Array = global.Array;
prototype = Array.prototype;
value6 = Object.create(prototype, {constructor: {value: Array}});
array = new Array();
value7 = array instanceof Object ? array : value6;
length = importDefault.length;
if (value2 < binding) {
r2 = value2;
reducibleLoop3: while (true) {
value7[r2] = [];
value8 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1;
if (value8 < env0_0) {
r2 = value8;
continue reducibleLoop3;
}
break reducibleLoop3;
}
}
value9 = 100;
if (value2 < length) {
r3 = value2;
reducibleLoop5: while (true) {
value10 = r3 % env0_0;
reducibleJoin11: while (true) {
if (require) {
if (value2 < env0_0) {
r16 = value2;
r17 = value10;
reducibleLoop7: while (true) {
property = value5[r16];
if (property < value5[r17]) {
r17 = r16;
}
value11 = typeof r16 === 'bigint' ? r16 + 1n : +r16 + 1;
if (value11 < env0_0) {
r16 = value11;
continue reducibleLoop7;
}
r15 = r17;
break reducibleLoop7;
}
} else {
r15 = value10;
}
object.size = undefined;
property = importDefault[r3];
binding = env0_0;
importAll(object, property, r3, binding, env0_4);
property = value5[r15];
size = object.size;
r16 = size ?? value9;
value5[r15] = property + r16;
r12 = r15;
break reducibleJoin11;
}
r12 = value10;
break reducibleJoin11;
}
property = value7[r12];
push = property.push;
Reflect.apply(push, property, [{originalItem: importDefault[r3], originalIndex: r3}]);
value12 = typeof r3 === 'bigint' ? r3 + 1n : +r3 + 1;
if (value12 < length) {
r3 = value12;
continue reducibleLoop5;
}
break reducibleLoop5;
}
}
return value7;
}
break reducibleJoin13;
}
}
return [];
}
}
function useTotalColumnFlex(a0, a1) { // fn#51124, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:3547, offset: 0x01229f83, size: 66 bytes, params: 3, frame: 14
const env0_0 = a0;
const env0_1 = a1;
const getColumnFlex = a1.getColumnFlex;
return useMemo(_fun51125, [a0, getColumnFlex, a1.extraData]);
function _fun51125() { // fn#51125, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:3590, offset: 0x01229fc5, size: 109 bytes, params: 1, frame: 21
var r1;
var r2;
var r0;
var value2;
var length;
var value3;
var property;
var extraData;
var value4;
var value5;
let numColumns = require.numColumns;
reducibleJoin2: while (true) {
if (numColumns) {
break reducibleJoin2;
}
value2 = 1;
numColumns = value2;
break reducibleJoin2;
}
let getColumnFlex = require.getColumnFlex;
if (getColumnFlex) {
length = env0_0.length;
value3 = 0;
if (value3 < length) {
r1 = value3;
r2 = value3;
reducibleLoop5: while (true) {
getColumnFlex = require.getColumnFlex;
property = env0_0[r1];
extraData = require.extraData;
value4 = r2 + Reflect.apply(getColumnFlex, require, [property, r1, numColumns, extraData]);
value5 = typeof r1 === 'bigint' ? r1 + 1n : +r1 + 1;
if (value5 < length) {
r1 = value5;
r2 = value4;
continue reducibleLoop5;
}
r0 = value4;
break reducibleLoop5;
}
} else {
r0 = value3;
}
return r0;
}
return numColumns;
}
}
function useRefWithForwardRef(a0) { // fn#51126, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:3775, offset: 0x0122a032, size: 66 bytes, params: 2, frame: 15
const env0_0 = a0;
const items2 = [useRef(null)];
items2[1] = useCallback(_fun51127, [a0]);
return items2;
function _fun51127(a0) { // fn#51127, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:3834, offset: 0x0122a074, size: 65 bytes, params: 2, frame: 12
env0_1.current = a0;
if (typeof env0_0 === 'function') {
env0_0(a0);
} else if (env0_0) {
env0_0.current = a0;
}
}
}
function getFlashListScrollView(a0, a1) { // fn#51128, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:3912, offset: 0x0122a0b5, size: 53 bytes, params: 3, frame: 11
const env0_0 = a0;
const env0_1 = a1;
const value = env0_11.forwardRef(_fun51129);
value.displayName = 'FlashListScrollView';
return value;
function _fun51129(a0, a1) { // fn#51129, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:3969, offset: 0x0122a0ea, size: 142 bytes, params: 3, frame: 19
const onLayout = a0.onLayout;
const onScroll = a0.onScroll;
const value2 = env1_5(a0, env1_4);
const value3 = useCallback(_fun51130, [onLayout]);
useEffect(_fun51131, [onScroll]);
const Object = global.Object;
return <View {...Object.assign({ref: a1}, value2, {onLayout: value3})} />;
function _fun51130(a0) { // fn#51130, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:4027, offset: 0x0122a178, size: 83 bytes, params: 2, frame: 14
var object2;
let onLayoutBinding = onLayout;
if (onLayoutBinding != null) {
onLayoutBinding = onLayout;
object2 = {};
value = environment.__proto__;
object2.height = require();
object2.width = a0.nativeEvent.layout.width;
onLayoutBinding({nativeEvent: {layout: object2}});
}
}
function _fun51131() { // fn#51131, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:4137, offset: 0x0122a1cb, size: 51 bytes, params: 1, frame: 11
var environment;
var value2;
var current;
if (onScroll) {
value2 = environment.__proto__;
current = env1_0.current;
if (current != null) {
current.push(onScroll);
}
}
return _fun51132;
function _fun51132() { // fn#51132, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6669:4197, offset: 0x0122a1fe, size: 87 bytes, params: 1, frame: 13
var value2;
var value3;
let current = env2_0.current;
if (current) {
value2 = environment.__proto__;
if (onScroll) {
current = env2_0.current;
value3 = current.indexOf(onScroll);
if (value3 > -1) {
env2_0.current.splice(value3, 1);
}
}
}
}
}
}
}
}
global.__d(_fun51108, 6491, [6371, 6365, 31, 27, 33, 6436, 6441, 6442,
6426]) /* metro module 6491, dependencies: [6371, 6365, 31, 27, 33, 6436, 6441, 6442, 6426] */;