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

182 lines
11 KiB
TypeScript

/* Metro module 14070; source: modules/collectibles/native/FeedBlock.tsx; dependencies: [31, 27, 4502, 1310, 5078, 663, 661, 33, 4501, 697, 566, 4002, 14058, 14071, 14049, 5120, 6789, 6771, 1244, 4573, 5278, 4080, 14072, 1962, 4068, 4578, 14062, 14073, 477, 7601, 14074, 5475, 14075, 14076, 2] */
function _fun106662(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#106662, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14267:6, offset: 0x022e53d2, size: 537 bytes, params: 8, frame: 22
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
let value = require(27) /* metro dependency 27 */;
const env0_4 = value.Image;
const env0_5 = value.View;
const accessibilityStore = importDefault(4502) /* metro dependency 4502: AccessibilityStore */;
const themeStore = importDefault(1310) /* metro dependency 1310: ThemeStore */;
const consentStore = importDefault(5078) /* metro dependency 5078: ConsentStore */;
const env0_9 = (require(663) /* metro dependency 663: CollectiblesShopConstants */).CollectiblesMobileShopScreen;
const env0_10 = (require(661) /* metro dependency 661: Constants */).Consents;
value = require(33) /* metro dependency 33 */;
const env0_11 = value.jsx;
const env0_12 = value.jsxs;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
object2 = {};
let PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object2.feedContainer = {'display': 'flex', 'flexDirection': 'column', 'height': '100%', gap: PX_16};
const object4 = {'display': 'flex', 'flexDirection': 'row', 'flexWrap': 'wrap', 'justifyContent': 'space-between',
'alignItems': 'center'};
const PX_12 = (importDefault(697) /* metro dependency 697: native */).space.PX_12;
object4.gap = PX_12;
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object4.paddingHorizontal = PX_16;
object2.feedHeader = object4;
const PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object2.feedTitle = {'display': 'flex', 'flexDirection': 'row', 'alignItems': 'center', 'flexShrink': 1, gap: PX_8};
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object2.feedFooter = {'display': 'flex', 'gap': null, 'flexDirection': 'column', 'justifyContent': 'center',
'alignItems': 'center', gap: PX_16};
object2.feedFooterImage = {'width': '100%', 'resizeMode': 'cover'};
object2.feedFooterOrbImage = {'width': '100%', 'alignSelf': 'center', 'resizeMode': 'contain', 'height': 130};
const env0_13 = Reflect.apply(createStyles, value, [object2]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/collectibles/native/FeedBlock.tsx');
exports.default = _default_106663;
}
function _default_106663({feedBlock, screen, preferVCPrice, disableBundleStaticBackground}) { // fn#106663, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14267:911, offset: 0x022e55eb, size: 1576 bytes, params: 2, frame: 41
var r18;
var r9;
var r13;
var r12;
var PressableOpacity;
var object;
const Button = (require(4578) /* metro dependency 4578: ButtonNative */).Button;
var object8;
var object2;
var object3;
var value;
const styles = useStyles();
const value2 = (require(566) /* metro dependency 566: flux */).useStateFromStores([ThemeStore], function() {
return require(dependencyMap[11]).isThemeDark(ThemeStore.theme);
});
const {feedProducts, isPersonalized} = env0_3.useMemo(_fun106666, [feedBlock.sortedSkuIds,
(importDefault(14058) /* metro dependency 14058: useGetProductsFromSkus */)(),
(require(566) /* metro dependency 566: flux */).useStateFromStores([ConsentStore], function() {
return ConsentStore.hasConsented(Consents.PERSONALIZATION);
})]);
const value6 = (require(14049) /* metro dependency 14049: useFilteredAndSortedProducts */).useFilteredAndSortedProducts({products: feedProducts,
maxProducts: 36, screen: screen});
const closure = function() {
var moduleValue = require(dependencyMap[15]);
var object = {};
var COLLECTIBLES_MOBILE_SHOP_ALL_BUTTON = importDefault(dependencyMap[16]).COLLECTIBLES_MOBILE_SHOP_ALL_BUTTON;
object.analyticsLocations = [COLLECTIBLES_MOBILE_SHOP_ALL_BUTTON];
object.analyticsSource = importDefault(dependencyMap[16]).COLLECTIBLES_MOBILE_SHOP_ALL_BUTTON;
object.screen = CollectiblesMobileShopScreen.SHOP_ALL;
moduleValue.openCollectiblesShopMobile(object);
};
const ORBS = CollectiblesMobileShopScreen.ORBS;
const value7 = screen === ORBS;
const useReducedMotion = (require(566) /* metro dependency 566: flux */).useStateFromStores([AccessibilityStore],
function() {
return AccessibilityStore.useReducedMotion;
});
const defaultImport = importDefault(6771) /* metro dependency 6771: useAnalyticsLocations */;
const COLLECTIBLES_SHOP_POPULAR_PICKS = (importDefault(6789) /* metro dependency 6789: AnalyticsLocation */).COLLECTIBLES_SHOP_POPULAR_PICKS;
const analyticsLocations = defaultImport(COLLECTIBLES_SHOP_POPULAR_PICKS).analyticsLocations;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
let string = intl.string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const r15 = isPersonalized ? Reflect.apply(string, intl, [t.NSv5KV]) : Reflect.apply(string, intl, [t.ivaAA7]);
const AnalyticsLocationProvider = (require(6771) /* metro dependency 6771: useAnalyticsLocations */).AnalyticsLocationProvider;
const Heading = (require(4573) /* metro dependency 4573: Text */).Heading;
const heading = <Heading variant="heading-lg/semibold">{r15}</Heading>;
if (isPersonalized) {
PressableOpacity = (require(5278) /* metro dependency 5278: Pressables */).PressableOpacity;
object = {onPress: onPress_106669, hitSlop: 14};
object['aria-label'] = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.hvVgAZ);
r18 = <PressableOpacity {...object}>{((CircleInformationIcon) => <CircleInformationIcon size="xs" />)((require(4068) /* metro dependency 4068: CircleInformationIcon */).CircleInformationIcon)}</PressableOpacity>;
} else {
r18 = isPersonalized;
}
const view = <View style={styles.feedTitle}>{heading}{r18}</View>;
if (value7) {
r9 = !value7;
} else {
r9 = <Button onPress={closure} text={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.xFcotU)} variant="primary" size="sm" />;
}
const items3 = [<View style={styles.feedHeader}>{view}{r9}</View>];
items3[1] = ((Component) => <Component products={value6} loadingCardsNum={36} preferVCPrice={preferVCPrice} accessibilityLabel={r15} disableBundleStaticBackground={disableBundleStaticBackground} />)(importDefault(14062) /* metro dependency 14062: FeedProductList */);
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
string = intl.string;
const Yr70c4 = (require(1244) /* metro dependency 1244: indexNative */).t.Yr70c4;
const items4 = [<Text variant="heading-lg/bold" accessibilityRole="header">{Reflect.apply(string, intl,
[Yr70c4])}</Text>];
string = intl.string;
const AfrvRD = (require(1244) /* metro dependency 1244: indexNative */).t.AfrvRD;
items4[1] = <Button onPress={closure} text={Reflect.apply(string, intl, [AfrvRD])} variant="primary" size="md" />;
if (value7) {
if (useReducedMotion) {
object3 = {};
object3.uri = importDefault(14073) /* metro dependency 14073: orb_coachmark_asset_2xPng */;
r13 = <Image source={object3} style={styles.feedFooterOrbImage} accessibilityElementsHidden importantForAccessibility="no-hide-descendants" />;
} else if ((require(477) /* metro dependency 477: PlatformUtils */).isAndroid()) {
value = importDefault(7601) /* metro dependency 7601: APNGDecorationNativeComponent */;
value = ((Component) => <Component url={importDefault(14074) /* metro dependency 14074: orb_coachmark_asset_2x_animatedPng */} autoplay style={styles.feedFooterOrbImage} accessibilityElementsHidden importantForAccessibility="no-hide-descendants" />)(value);
r13 = value;
} else {
value = importDefault(5475) /* metro dependency 5475: FastImage */;
value = ((Component) => <Component source={{uri: importDefault(14074) /* metro dependency 14074: orb_coachmark_asset_2x_animatedPng */}} enableAnimation resizeMode="contain" style={styles.feedFooterOrbImage} accessibilityElementsHidden importantForAccessibility="no-hide-descendants" />)(value);
r13 = value;
}
r12 = r13;
} else {
object2 = {};
if (value2) {
object2.source = require(14075) /* metro dependency 14075 */;
object2.style = styles.feedFooterImage;
object2.accessibilityElementsHidden = true;
object2.importantForAccessibility = 'no-hide-descendants';
} else {
object2.source = require(14076) /* metro dependency 14076 */;
object2.style = styles.feedFooterImage;
object2.accessibilityElementsHidden = true;
object2.importantForAccessibility = 'no-hide-descendants';
}
r12 = <Image {...object2} />;
}
items4[2] = r12;
items3[2] = <View style={styles.feedFooter}>{items4}</View>;
return (
<AnalyticsLocationProvider value={analyticsLocations}>
<View style={styles.feedContainer}>
{items3}
</View>
</AnalyticsLocationProvider>
);
}
function _fun106666() { // fn#106666, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14267:1168, offset: 0x022e5c61, size: 186 bytes, params: 1, frame: 17
const ShopHomeSortType = (require(14071) /* metro dependency 14071: ShopHomeSortType */).ShopHomeSortType;
let sortedSkuIds = feedBlock.sortedSkuIds;
const value2 = undefined;
let r5 = sortedSkuIds == null ? value2 : sortedSkuIds[ShopHomeSortType.RECOMMENDED];
r5 = r5 ?? [];
sortedSkuIds = feedBlock.sortedSkuIds;
let r3 = sortedSkuIds == null ? value2 : sortedSkuIds[ShopHomeSortType.POPULAR];
r3 = r3 ?? [];
const r1 = env0_1 && r5.length > 0;
const object2 = {};
r3 = r1 ? r5 : r3;
object2.feedProducts = env0_2(r3);
object2.isPersonalized = r1;
return object2;
}
function _default_106663OnPress_106669() { // fn#106669, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14267:2262, owner: _default_106663.onPress, offset: 0x022e5d89, size: 82 bytes, params: 1, frame: 16
let value = environment.__proto__;
const defaultImport = importDefault(dependencyMap[21]);
const openLazy = defaultImport.openLazy;
value = require(dependencyMap[23]);
value = value(dependencyMap[22], dependencyMap.paths);
return Reflect.apply(openLazy, defaultImport, [value, 'PersonalizationDisclaimerActionSheet', {}]);
}