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

254 lines
13 KiB
TypeScript

/* Metro module 14884; source: modules/icymi/native/NewContentPill.tsx; dependencies: [57, 31, 27, 1867, 9569, 33, 4501, 697, 7599, 6819, 566, 4048, 7230, 9579, 4017, 4577, 1487, 5278, 14278, 4573, 1244, 4002, 2] */
function _fun112600(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#112600, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15081:6, offset: 0x023d4171, size: 437 bytes, params: 8, frame: 22
var object3;
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 */;
let value = require(27) /* metro dependency 27 */;
const env0_5 = value.ActivityIndicator;
const env0_6 = value.View;
const guildStore = importDefault(1867) /* metro dependency 1867: GuildStore */;
const icymiStore = importDefault(9569) /* metro dependency 9569: ICYMIStore */;
value = require(33) /* metro dependency 33 */;
const env0_9 = value.jsx;
const env0_10 = value.jsxs;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
object3 = {};
const object4 = {'alignSelf': 'center', 'alignItems': 'center', 'flexDirection': 'row', 'paddingRight': 12,
'paddingLeft': 8, 'paddingVertical': 6};
object4.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
const BACKGROUND_BRAND = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BRAND;
object4.backgroundColor = BACKGROUND_BRAND;
object3.container = object4;
const BACKGROUND_BASE_LOWER = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BASE_LOWER;
object3.guildIconBG = {backgroundColor: BACKGROUND_BASE_LOWER};
object3.refreshMorePillContainer = {'position': 'absolute', 'top': 0, 'left': 0, 'height': 32, 'width': '100%',
'zIndex': 100};
const env0_11 = Reflect.apply(createStyles, value, [object3]);
const env0_12 = {'overshootClamping': true, 'stiffness': 20, 'damping': 15, 'mass': 0.03};
object3 = {code: "function NewContentPillTsx1(){const{withSpring,showingPill,springConfig}=this.__closure;return{transform:[{translateY:withSpring(showingPill?12:0,springConfig)}],opacity:withSpring(showingPill?1:0,springConfig,'respect-motion-settings')};}"};
object3 = {code: "function NewContentPillTsx2(){const{showingPill}=this.__closure;return{pointerEvents:showingPill?'box-none':'none'};}"};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/icymi/native/NewContentPill.tsx');
exports.default = NewContentPill;
}
function CutoutGuildIcon_112601({guild}) { // fn#112601, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15081:649, offset: 0x023d4326, size: 246 bytes, params: 2, frame: 24
const styles = useStyles();
const ClipView = importDefault(7599) /* metro dependency 7599: ClipView */;
const object = {'shape': null, 'x': 18, 'y': -4, 'width': 32, 'height': 32};
const CutoutShape = (require(7599) /* metro dependency 7599: ClipView */).CutoutShape;
const RoundedRect = CutoutShape.RoundedRect;
object.shape = RoundedRect;
object.cornerRadius = (importDefault(697) /* metro dependency 697: native */).radii.md;
const items2 = [object];
const guildIcon = importDefault(6819) /* metro dependency 6819: GuildIcon */;
const GuildIconSizes = (require(6819) /* metro dependency 6819: GuildIcon */).GuildIconSizes;
const XSMALL = GuildIconSizes.XSMALL;
return (
<View style={{'width': 24, 'height': 24}}>
<ClipView cutouts={items2}>
{((Component) => <Component guild={guild} size={XSMALL} style={styles.guildIconBG} />)(guildIcon)}
</ClipView>
</View>
);
}
function NewContentPill({onPress, isRefreshing}) { // fn#112602, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15081:1420, offset: 0x023d441c, size: 1419 bytes, params: 2, frame: 35
var r15;
var view;
var View2;
const PressableOpacity = (require(5278) /* metro dependency 5278: Pressables */).PressableOpacity;
var isThemeDark2;
var unsafe_rawColors;
var items2;
var slice;
var value17;
var object;
var GuildIcon;
var View3;
var items4;
var Text;
var intl;
const styles = useStyles();
const value2 = (require(566) /* metro dependency 566: flux */).useStateFromStoresArray([ICYMIStore], function() {
return ICYMIStore.getNewUnreadDehydratedItems();
});
const fluxModule = require(566) /* metro dependency 566: flux */;
let closure = function() {
return ICYMIStore.hasNewContent();
};
const value3 = fluxModule.useStateFromStores([ICYMIStore], closure, []);
const env0_3 = value3;
let binding = env0_4;
let useState = binding.useState;
const value4 = Reflect.apply(useState, binding, [value2]);
const binding2 = env0_3;
const value5 = binding2(value4, 2);
var property = value5[0];
var env0_4 = property;
const env0_5 = value5[1];
const value6 = (importDefault(4048) /* metro dependency 4048: useTheme */)();
const env0_6 = binding.useMemo(_fun112605, [property]);
const value7 = fluxModule.useStateFromStoresArray([GuildStore], _fun112607);
useState = binding.useState;
const value8 = binding2(Reflect.apply(useState, binding, [false]), 2);
property = value8[0];
const env0_7 = value8[1];
const r19 = value3 && property;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
closure = NewContentPillY;
closure.__closure = {withSpring: (require(4577) /* metro dependency 4577: spring */).withSpring, showingPill: r19,
springConfig: env0_12};
closure.__workletHash = 13655660855782;
closure.__initData = env0_13;
const value9 = Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
const moduleValue5 = reanimatedRexportModule;
const useAnimatedProps = moduleValue5.useAnimatedProps;
closure = NewContentPillC;
closure.__closure = {showingPill: r19};
closure.__workletHash = 876312391659;
closure.__initData = env0_14;
const value10 = Reflect.apply(useAnimatedProps, moduleValue5, [closure]);
const value11 = (require(1487) /* metro dependency 1487 */).useIsFocused();
binding = env0_4;
var [property, env0_11] = env0_3(binding.useState(false), 2);
binding.useLayoutEffect(_fun112611, [value3, value11, property]);
binding.useEffect(_fun112612, [isRefreshing, value2, value3]);
const value14 = binding.useCallback(function() {
onPress();
}, [onPress]);
let length = value7.length;
if (length === 0) {
View3 = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View;
var view3Props = {style: [styles.refreshMorePillContainer, value9], animatedProps: value10};
var pressableOpacityProps = {onPress: value14, style: styles.container};
items4 = [((ArrowSmallUpIcon) => <ArrowSmallUpIcon size="md" color="interactive-text-active" />)((require(14278) /* metro dependency 14278: ArrowSmallUpIcon */).ArrowSmallUpIcon)];
Text = (require(4573) /* metro dependency 4573: Text */).Text;
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
items4[1] = <Text style={{marginLeft: 4}} variant="heading-md/bold" color="interactive-text-active">{intl.string((require(1244) /* metro dependency 1244: indexNative */).t['4Nl0Rl'])}</Text>;
view = <View3 {...view3Props}><PressableOpacity {...pressableOpacityProps}>{items4}</PressableOpacity></View3>;
} else {
View2 = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View;
var view2Props = {style: [styles.refreshMorePillContainer, value9], animatedProps: value10};
var pressableOpacityProps = {onPress: value14, style: styles.container};
if (isRefreshing) {
isThemeDark2 = (require(4002) /* metro dependency 4002: shared */).isThemeDark(value6);
unsafe_rawColors = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors;
r15 = <ActivityIndicator color={isThemeDark2 ? unsafe_rawColors.WHITE : unsafe_rawColors.PRIMARY_500} />;
} else {
const ArrowSmallUpIcon = (require(14278) /* metro dependency 14278: ArrowSmallUpIcon */).ArrowSmallUpIcon;
r15 = <ArrowSmallUpIcon size="md" color="interactive-text-active" />;
}
items2 = [r15];
slice = value7.slice;
length = value7.length;
value17 = Reflect.apply(slice, value7, [0, length - 1]);
items2[1] = value17.map(_fun112614);
object = {};
length = value7.length;
object.style = {marginLeft: length > 1 ? -2 : 4};
GuildIcon = importDefault(6819) /* metro dependency 6819: GuildIcon */;
length = value7.length;
items2[2] = <View {...object}><GuildIcon guild={value7[length - 1]} size={(require(6819) /* metro dependency 6819: GuildIcon */).GuildIconSizes.XSMALL} style={styles.guildIconBG} /></View>;
view = <View2 {...view2Props}><PressableOpacity {...pressableOpacityProps}>{items2}</PressableOpacity></View2>;
}
return view;
}
function _fun112605() { // fn#112605, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15081:1691, offset: 0x023d49cf, size: 36 bytes, params: 1, frame: 12
env0_4.forEach(_fun112606);
return [];
}
function _fun112607() { // fn#112607, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15081:1901, offset: 0x023d4a7f, size: 46 bytes, params: 1, frame: 11
const value = env0_6.map(function(a0) {
return GuildStore.getGuild(a0);
});
const filter = value.filter;
const Boolean = global.Boolean;
return Reflect.apply(filter, value, [Boolean]);
}
function NewContentPillY() { // fn#112609, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15081:2028, owner: NewContentPill.y, offset: 0x023d4ac4, size: 133 bytes, params: 1, frame: 21
const object2 = {};
const springModule = require(4577) /* metro dependency 4577: spring */;
const withSpring = springModule.withSpring;
const value3 = 0;
object2.transform = [{translateY: Reflect.apply(withSpring, springModule, [env0_8 ? 12 : value3, env1_12])}];
const moduleValue2 = springModule;
object2.opacity = moduleValue2.withSpring(env0_8 ? 1 : value3, env1_12, 'respect-motion-settings');
return object2;
}
function NewContentPillC() { // fn#112610, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15081:2320, owner: NewContentPill.C, offset: 0x023d4b49, size: 29 bytes, params: 1, frame: 3
return {pointerEvents: env0_8 ? 'box-none' : 'none'};
}
function _fun112611() { // fn#112611, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15081:2534, offset: 0x023d4b66, size: 93 bytes, params: 1, frame: 12
var r1;
if (env0_10) {
r1 = env0_10 && env0_9;
r1 = r1 && !env0_3;
if (r1) {
env0_7(true);
}
} else if (env0_9) {
if (env0_3) {
env0_7(false);
} else {
r1 = env0_10 && env0_9;
r1 = r1 && !env0_3;
if (r1) {
env0_7(true);
}
}
} else {
r1 = env0_10 && env0_9;
r1 = r1 && !env0_3;
if (r1) {
env0_7(true);
}
}
env0_11(env0_9);
}
function _fun112612() { // fn#112612, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15081:2599, offset: 0x023d4bc3, size: 29 bytes, params: 1, frame: 11
if (!isRefreshing) {
env0_5(env0_2);
}
}
function _fun112614(a0, a1) { // fn#112614, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15081:3407, offset: 0x023d4be0, size: 88 bytes, params: 3, frame: 18
return (
<View style={{marginLeft: a1 > 0 ? -2 : 4}} key={a0.id}>
<CutoutGuildIcon_112601 guild={a0} />
</View>
);
}
function _fun112606(a0) { // fn#112606, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15081:1723, offset: 0x023d49f3, size: 140 bytes, params: 2, frame: 15
var r3;
var isGuildItem2;
var binding;
const length = env0_0.length;
const MIN_ITEMS_FOR_NEW_PILL = (require(7230) /* metro dependency 7230: ICYMITypes */).MIN_ITEMS_FOR_NEW_PILL;
if (!(length >= MIN_ITEMS_FOR_NEW_PILL)) {
isGuildItem2 = (require(9579) /* metro dependency 9579: ICYMIUtils */).isGuildItem(a0);
if (isGuildItem2) {
binding = env0_0;
r3 = !binding.includes(a0.data.guild_id);
} else {
r3 = isGuildItem2;
}
if (r3) {
binding = env0_0;
binding.push(a0.data.guild_id);
}
}
}