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

620 lines
38 KiB
TypeScript

/* Metro module 14854; source: modules/icymi/native/ICYMIShared.tsx; dependencies: [31, 27, 6898, 1379, 1945, 3784, 1878, 661, 33, 7230, 9311, 6697, 9783, 14783, 5097, 6837, 5459, 7067, 4044, 14815, 477, 697, 1305, 7599, 6819, 4584, 5278, 4573, 4788, 14855, 8638, 566, 4617, 9580, 8743, 6704, 9579, 14517, 9133, 1244, 14816, 4048, 3860, 4000, 4017, 4504, 4603, 6682, 6818, 6622, 2] */
function _fun112249(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#112249, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:6, offset: 0x023c0ca9, size: 560 bytes, params: 8, frame: 23
const env0_0 = require;
const closure = Separator_112250;
const closure2 = function(a0) {
var r0;
var value = a0;
if (value.length > 20) {
value = value.slice(0, 17);
value = '' + value + '...';
r0 = value;
} else {
r0 = value;
}
return r0;
};
const closure3 = CutoutGuildIcon;
const closure4 = GuildContentPost;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(27) /* metro dependency 27 */).View;
const threadMessageStore = importDefault(6898) /* metro dependency 6898: ThreadMessageStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const guildMemberStore = importDefault(1945) /* metro dependency 1945: GuildMemberStore */;
const permissionStore = importDefault(3784) /* metro dependency 3784: PermissionStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
let value = require(661) /* metro dependency 661: Constants */;
const env0_10 = value.AnalyticsObjects;
const env0_11 = value.AnalyticsObjectTypes;
const env0_12 = value.AnalyticsPages;
const env0_13 = value.DEFAULT_ROLE_COLOR_HEX;
const env0_14 = value.MAX_MESSAGES_FOR_JUMP;
const env0_15 = value.MessageFlags;
const env0_16 = value.Permissions;
const env0_17 = value.Routes;
value = require(33) /* metro dependency 33 */;
const env0_18 = value.jsx;
const env0_19 = value.jsxs;
const env0_20 = value.Fragment;
const env0_21 = (require(14815) /* metro dependency 14815: createICYMIStyles */).createICYMIStyles(_fun112256);
object = {code: 'function ICYMISharedTsx1(){const{interpolateColor,progress,bgColor,bgColorHighlighted}=this.__closure;return{backgroundColor:interpolateColor(progress.get(),[0,1],[bgColor,bgColorHighlighted])};}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/icymi/native/ICYMIShared.tsx');
exports.navigateToPost = navigateToPost;
exports.Separator = closure;
exports.truncateUsername = closure2;
exports.CutoutGuildIcon = closure3;
exports.GuildContentPost = closure4;
exports.AnnouncementContentPost = AnnouncementContentPost;
exports.GuildEventPost = GuildEventPost;
exports.MessageContentPost = MessageContentPost;
exports.SimplePost = SimplePost;
exports.ThreadAsComments = ThreadAsComments;
}
function Separator_112250() { // fn#112250, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:2353, offset: 0x023c0ed9, size: 41 bytes, params: 1, frame: 14
return <View style={env0_21().separator} />;
}
function CutoutGuildIconWithUser({guild, author}) { // fn#112252, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:2488, offset: 0x023c0f43, size: 146 bytes, params: 2, frame: 23
const value2 = env0_21();
const Avatar = (require(1305) /* metro dependency 1305: native */).Avatar;
const authorIcon = value2.authorIcon;
const id = guild.id;
const AvatarSizes = (require(1305) /* metro dependency 1305: native */).AvatarSizes;
const XSMALL = AvatarSizes.XSMALL;
return (
<CutoutGuildIcon
guild={guild}
icon={<Avatar animate style={authorIcon} guildId={id} user={author} size={XSMALL} />}
/>
);
}
function CutoutGuildIcon({guild, icon}) { // fn#112253, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:2696, offset: 0x023c0fd5, size: 217 bytes, params: 2, frame: 24
const ClipView = importDefault(7599) /* metro dependency 7599: ClipView */;
const CutoutShape = (require(7599) /* metro dependency 7599: ClipView */).CutoutShape;
const Circle = CutoutShape.Circle;
const items2 = [{'shape': null, 'x': 16, 'y': 14, 'size': 32, shape: Circle}];
let value = importDefault(6819) /* metro dependency 6819: GuildIcon */;
const GuildIconSizes = (require(6819) /* metro dependency 6819: GuildIcon */).GuildIconSizes;
const NORMAL = GuildIconSizes.NORMAL;
value = <ClipView cutouts={items2}>{((Component) => <Component guild={guild} size={NORMAL} />)(value)}</ClipView>;
return (
<View style={{'width': 40, 'height': 40}}>
{value}
{icon}
</View>
);
}
function GuildContentPost({guild, channel, timestamp, hideTimestamp, children, avatar, title, subtitle, id, type, onHeaderPress, onHeaderLongPress, disableInteractions}) { // fn#112254, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:2938, offset: 0x023c10ae, size: 743 bytes, params: 2, frame: 49
const value2 = env0_21();
const value3 = (require(4584) /* metro dependency 4584: useFontScale */).useFontScale();
const jsxRuntimeEnv0_20Binding = jsxRuntimeEnv0_20;
const PressableHighlight = (require(5278) /* metro dependency 5278: Pressables */).PressableHighlight;
return (
<>
<PressableHighlight
onPress={onHeaderPress}
onLongPress={onHeaderLongPress}
style={value2.content}
>
<View style={value3 > 1.8 ? value2.channelNameAndAccessoryLarge : value2.channelNameAndAccessory}>
<View style={value2.header}>
{avatar}
<View style={value2.headerInfo}>
<View style={value2.title}>
<View style={value2.titleLeft}>
{title}
{!hideTimestamp && ((Text) => <Text lineClamp={1} variant="text-xs/normal" color="text-muted">{(require(4788) /* metro dependency 4788: NotificationCenterUtils */).getRelativeTimestamp(timestamp)}</Text>)((require(4573) /* metro dependency 4573: Text */).Text)}
</View>
{disableInteractions || guild == null ? null : ((PressableOpacity) => <PressableOpacity onPress={onPress_112255} style={value2.subtitleTrailing} hitSlop={8}>{((MoreHorizontalIcon) => <MoreHorizontalIcon color={(importDefault(697) /* metro dependency 697: native */).colors.ICON_MUTED} size="sm" />)((require(8638) /* metro dependency 8638: MoreHorizontalIcon */).MoreHorizontalIcon)}</PressableOpacity>)((require(5278) /* metro dependency 5278: Pressables */).PressableOpacity)}
</View>
<View style={value2.subTitleContainer}>
<View style={value2.subtitle}>
{subtitle}
</View>
</View>
</View>
</View>
</View>
</PressableHighlight>
{children}
</>
);
}
function _fun112256(a0) { // fn#112256, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:417, offset: 0x023c13f7, size: 822 bytes, params: 2, frame: 18
const object2 = {};
const platformUtilsModule = require(477) /* metro dependency 477: PlatformUtils */;
const isAndroid2 = platformUtilsModule.isAndroid();
const value2 = 0;
object2.simplePostContent = {'flex': 1, 'marginTop': null, 'overflow': 'hidden',
marginTop: isAndroid2 ? -2 : value2};
const moduleValue2 = platformUtilsModule;
object2.content = {'flex': 1, 'marginTop': null, 'overflow': 'hidden',
marginTop: moduleValue2.isAndroid() ? -2 : value2, paddingTop: a0.margin};
const object3 = {'position': 'absolute', 'right': -4, 'bottom': -2, 'padding': 4};
object3.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
let REDESIGN_BUTTON_TERTIARY_BACKGROUND = (importDefault(697) /* metro dependency 697: native */).colors.REDESIGN_BUTTON_TERTIARY_BACKGROUND;
object3.backgroundColor = REDESIGN_BUTTON_TERTIARY_BACKGROUND;
object2.insetIconWrapper = object3;
object2.authorIcon = {'position': 'absolute', 'right': -4, 'bottom': -2};
let TEXT_MUTED = (importDefault(697) /* metro dependency 697: native */).colors.TEXT_MUTED;
object2.moreDetailsIcon = {tintColor: TEXT_MUTED};
object2.channelNameAndAccessory = {'flexDirection': 'row', 'justifyContent': 'space-between',
'alignItems': 'center', paddingBottom: a0.margin, marginHorizontal: a0.margin};
object2.channelNameAndAccessoryLarge = {flexDirection: 'column', paddingBottom: a0.margin,
marginHorizontal: a0.margin};
object2.header = {'flexDirection': 'row', 'flexGrow': 1};
object2.headerInfo = {'flexGrow': 1, 'flexShrink': 1, marginLeft: a0.margin};
object2.title = {'flexDirection': 'row', 'alignItems': 'center', 'justifyContent': 'space-between',
'marginBottom': 2};
object2.titleLeft = {'flexShrink': 1, 'flexGrow': 0, 'flexDirection': 'row', 'alignItems': 'center', 'gap': 6};
const object5 = {'flexDirection': 'row', 'justifyContent': 'space-between'};
object5.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
object2.subTitleContainer = object5;
object2.subtitle = {'flexShrink': 1, 'flexGrow': 0, 'width': '100%'};
const PX_4 = (importDefault(697) /* metro dependency 697: native */).space.PX_4;
object2.genContentSubtitle = {'flexDirection': 'row', 'alignItems': 'center', gap: PX_4};
object2.genContentSubtitleChannel = {'flexDirection': 'row', 'alignItems': 'center', 'gap': 2, 'flex': 1};
object2.subtitleTrailing = {paddingVertical: 1};
const BORDER_SUBTLE = (importDefault(697) /* metro dependency 697: native */).colors.BORDER_SUBTLE;
object2.separator = {'height': 1, 'width': '100%', backgroundColor: BORDER_SUBTLE};
object2.eventsSubtitle = {'flexDirection': 'row', 'alignItems': 'center'};
const object6 = {'padding': 8, 'backgroundColor': null, 'borderRadius': null, 'display': 'flex',
'flexDirection': 'row', 'alignItems': 'center', 'gap': 8};
REDESIGN_BUTTON_TERTIARY_BACKGROUND = (importDefault(697) /* metro dependency 697: native */).colors.REDESIGN_BUTTON_TERTIARY_BACKGROUND;
object6.backgroundColor = REDESIGN_BUTTON_TERTIARY_BACKGROUND;
object6.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.md;
object2.comments = object6;
object2.recentCommentText = {'flexGrow': 1, 'flexShrink': 1, 'marginRight': 12};
object2.commentCount = {'display': 'flex', 'flexDirection': 'row', 'alignItems': 'center', 'gap': 2,
'justifySelf': 'end'};
const INTERACTIVE_TEXT_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.INTERACTIVE_TEXT_DEFAULT;
object2.commentsIcon = {'width': 20, 'height': 20, tintColor: INTERACTIVE_TEXT_DEFAULT};
TEXT_MUTED = (importDefault(697) /* metro dependency 697: native */).colors.TEXT_MUTED;
object2.chevron = {tintColor: TEXT_MUTED};
return object2;
}
function navigateToPost(a0, a1, a2) { // fn#112257, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:4260, offset: 0x023c172d, size: 158 bytes, params: 4, frame: 19
const env0_0 = a0;
const env0_1 = a2;
global.setTimeout(_fun112258, 1500);
(importDefault(6837) /* metro dependency 6837: safeTransitionToNative */)(Routes.CHANNEL(a1, a0, a2),
{'openChannel': true, 'navigationReplace': false});
if (a2 != null) {
(require(5459) /* metro dependency 5459: RunAfterInteractionsUtils */).runAfterInteractions(_fun112259, 150);
}
}
function AnnouncementContentPost({guild, channel, author, timestamp, children, id, mentioned, onHeaderPress, onHeaderLongPress}) { // fn#112260, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:4798, offset: 0x023c18a6, size: 678 bytes, params: 2, frame: 34
const env0_3 = id;
const value3 = env0_21();
const fluxModule = require(566) /* metro dependency 566: flux */;
const useStateFromStores = fluxModule.useStateFromStores;
const r20 = Reflect.apply(useStateFromStores, fluxModule, [[GuildMemberStore], function() {
return GuildMemberStore.getMember(guild.id, author.id);
}])?.colorString ?? DEFAULT_ROLE_COLOR_HEX;
const value4 = (require(4617) /* metro dependency 4617: NicknameUtils */).useName(guild.id, channel.id, author);
const value5 = env0_3.useCallback(_fun112262, [author.id, channel.id, id]);
const guildContentPostBindingProps = {guild: guild, channel: channel, timestamp: timestamp,
avatar: <CutoutGuildIconWithUser guild={guild} author={author} />};
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
guildContentPostBindingProps.title = <Text style={{maxWidth: 225}} lineClamp={1} variant="text-sm/medium" color="text-muted" key={channel.id}>{guild.name}</Text>;
const subtitle = value3.subtitle;
const Text2 = (require(4573) /* metro dependency 4573: Text */).Text;
const items2 = [<Text2 variant="text-md/semibold" onPress={value5} style={{color: r20}}>{truncateUsername(value4) + ' '}</Text2>];
const AnnouncementsIcon = (require(6704) /* metro dependency 6704: AnnouncementsIcon */).AnnouncementsIcon;
const TEXT_SUBTLE = (importDefault(697) /* metro dependency 697: native */).colors.TEXT_SUBTLE;
items2[1] = <AnnouncementsIcon size="sm" color={TEXT_SUBTLE} />;
const icymiUtilsModule = require(9579) /* metro dependency 9579: ICYMIUtils */;
const contentTypeToText = icymiUtilsModule.contentTypeToText;
const ContentType = (require(7230) /* metro dependency 7230: ICYMITypes */).ContentType;
const ANNOUNCEMENT = ContentType.ANNOUNCEMENT;
items2[2] = ' ' + Reflect.apply(contentTypeToText, icymiUtilsModule, [ANNOUNCEMENT, mentioned]);
guildContentPostBindingProps.subtitle = <Text lineClamp={2} variant="text-md/normal" color="text-default" style={subtitle}>{items2}</Text>;
guildContentPostBindingProps.onHeaderPress = onHeaderPress;
guildContentPostBindingProps.onHeaderLongPress = onHeaderLongPress;
guildContentPostBindingProps.id = id;
guildContentPostBindingProps.type = 'announcement';
return (
<GuildContentPost {...guildContentPostBindingProps}>
{children}
</GuildContentPost>
);
}
function GuildEventPost({guild, channel, children, event, type, onHeaderPress}) { // fn#112263, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:6106, offset: 0x023c1c0f, size: 1114 bytes, params: 2, frame: 37
var object;
var items3;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
var string;
var t;
var items2;
const env0_3 = type;
const value3 = env0_21();
const r15 = event.host_id ?? event.creator_id;
(require(14517) /* metro dependency 14517: useEnsureHydratedUsers */).useEnsureHydratedUsers(event.guild_id,
r15 != null ? [r15] : []);
const user = (require(566) /* metro dependency 566: flux */).useStateFromStores([UserStore], _fun112264);
const value4 = (require(566) /* metro dependency 566: flux */).useStateFromStores([GuildMemberStore], _fun112265);
const value5 = env0_3.useCallback(_fun112266, [user, channel?.id, event.id, value4?.highestRoleId, type]);
const r23 = value4?.colorString ?? DEFAULT_ROLE_COLOR_HEX;
const value6 = event.host_id != null;
const guildContentPostBindingProps = {guild: guild, channel: channel, timestamp: 0, hideTimestamp: true,
avatar: user != null ? <CutoutGuildIconWithUser guild={guild} author={user} /> : ((Component) => <Component guild={guild} size={(require(6819) /* metro dependency 6819: GuildIcon */).GuildIconSizes.NORMAL} />)(importDefault(6819) /* metro dependency 6819: GuildIcon */)};
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
guildContentPostBindingProps.title = <Text style={{maxWidth: 225}} lineClamp={1} variant="text-sm/medium" color="text-muted" key={event.id}>{guild.name}</Text>;
const subtitle = value3.subtitle;
const jsxRuntimeEnv0_20Binding = jsxRuntimeEnv0_20;
if (user != null) {
items2 = [<Text variant="text-md/semibold" onPress={value5} style={{color: r23}}>{truncateUsername(user.username) + ' '}</Text>];
items2[1] = ((CalendarIcon) => <CalendarIcon size="sm" color={(importDefault(697) /* metro dependency 697: native */).colors.TEXT_SUBTLE} />)((require(9133) /* metro dependency 9133: CalendarIcon */).CalendarIcon);
string = intl.string;
t = (require(1244) /* metro dependency 1244: indexNative */).t;
items2[2] = value6 ? ' ' + Reflect.apply(string, intl, [t['42OrO4']]) : ' ' + Reflect.apply(string, intl,
[t.Vu15se]);
object = {children: items2};
} else {
items3 = [((CalendarIcon) => <CalendarIcon size="sm" color={(importDefault(697) /* metro dependency 697: native */).colors.TEXT_SUBTLE} />)((require(9133) /* metro dependency 9133: CalendarIcon */).CalendarIcon)];
items3[1] = ' ' + intl.string((require(1244) /* metro dependency 1244: indexNative */).t.T7MIsc);
object = {children: items3};
}
guildContentPostBindingProps.subtitle = <Text lineClamp={2} variant="text-md/normal" color="text-default" style={subtitle}>{((Fragment) => <Fragment {...object} />)(jsxRuntimeEnv0_20Binding)}</Text>;
guildContentPostBindingProps.id = event.id;
guildContentPostBindingProps.type = type;
guildContentPostBindingProps.onHeaderPress = onHeaderPress;
return (
<GuildContentPost {...guildContentPostBindingProps}>
{children}
</GuildContentPost>
);
}
function MessageContentPost({guild, channel, timestamp, author, message, children, id, type, onHeaderPress, onHeaderLongPress}) { // fn#112267, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:7857, offset: 0x023c2197, size: 916 bytes, params: 2, frame: 36
const env0_3 = message;
let binding = env0_3;
const value2 = binding.useMemo(_fun112268, [channel, message]);
const r23 = (require(566) /* metro dependency 566: flux */).useStateFromStores([GuildMemberStore], function() {
return GuildMemberStore.getMember(guild.id, author.id);
})?.colorString ?? DEFAULT_ROLE_COLOR_HEX;
const value4 = (require(4617) /* metro dependency 4617: NicknameUtils */).useName(guild.id, channel.id, author);
const ContentType = (require(7230) /* metro dependency 7230: ICYMITypes */).ContentType;
const POPULAR_MESSAGE = ContentType.POPULAR_MESSAGE;
const r19 = POPULAR_MESSAGE === value2 ? (require(9311) /* metro dependency 9311: FireIcon */).FireIcon : (require(7230) /* metro dependency 7230: ICYMITypes */).ContentType.IMAGE === value2 ? (require(6697) /* metro dependency 6697: ImageIcon */).ImageIcon : (require(7230) /* metro dependency 7230: ICYMITypes */).ContentType.VIDEO === value2 ? (require(9783) /* metro dependency 9783: CirclePlayIcon */).CirclePlayIcon : (require(14783) /* metro dependency 14783: LightbulbIcon */).LightbulbIcon;
binding = env0_3;
const value5 = binding.useCallback(_fun112270, [author.id, channel.id, id, type]);
const useContext = binding.useContext;
const ICYMIContext = (require(14816) /* metro dependency 14816: ICYMIContext */).ICYMIContext;
const margin = Reflect.apply(useContext, binding, [ICYMIContext]).margin;
const guildContentPostBindingProps = {guild: guild, channel: channel, timestamp: timestamp,
avatar: <CutoutGuildIconWithUser guild={guild} author={author} />};
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
guildContentPostBindingProps.title = <Text style={{maxWidth: 225}} lineClamp={1} variant="text-sm/medium" color="text-default" key={channel.id}>{guild.name}</Text>;
const object = {marginRight: margin};
const Text2 = (require(4573) /* metro dependency 4573: Text */).Text;
const items2 = [<Text2 style={{color: r23}} onPress={value5} variant="text-md/semibold">{truncateUsername(value4) + ' '}</Text2>];
const TEXT_SUBTLE = (importDefault(697) /* metro dependency 697: native */).colors.TEXT_SUBTLE;
items2[1] = ((Component) => <Component size="sm" color={TEXT_SUBTLE} />)(r19);
const icymiUtilsModule = require(9579) /* metro dependency 9579: ICYMIUtils */;
items2[2] = ' ' + icymiUtilsModule.contentTypeToText(value2);
guildContentPostBindingProps.subtitle = <Text lineClamp={2} variant="text-md/normal" color="text-default" style={object}>{items2}</Text>;
guildContentPostBindingProps.onHeaderPress = onHeaderPress;
guildContentPostBindingProps.onHeaderLongPress = onHeaderLongPress;
guildContentPostBindingProps.id = id;
guildContentPostBindingProps.type = type;
return (
<GuildContentPost {...guildContentPostBindingProps}>
{children}
</GuildContentPost>
);
}
function SimplePost({children, hideDivider, highlight}) { // fn#112271, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:9441, offset: 0x023c25fa, size: 544 bytes, params: 2, frame: 26
var items2;
var items3;
highlight = !(highlight === undefined) && highlight;
const value2 = env0_21();
const value3 = (importDefault(4048) /* metro dependency 4048: useTheme */)();
const useTokenModule = require(3860) /* metro dependency 3860: useToken */;
const useToken = useTokenModule.useToken;
const MESSAGE_HIGHLIGHT_BACKGROUND_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.MESSAGE_HIGHLIGHT_BACKGROUND_DEFAULT;
const value4 = Reflect.apply(useToken, useTokenModule, [MESSAGE_HIGHLIGHT_BACKGROUND_DEFAULT, value3]);
const colorUtilsModule = require(4000) /* metro dependency 4000: ColorUtils */;
const hexWithOpacity = colorUtilsModule.hexWithOpacity;
const BRAND_360 = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.BRAND_360;
const value5 = Reflect.apply(hexWithOpacity, colorUtilsModule, [BRAND_360, 0.25]);
const value6 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(0);
const env0_3 = value6;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
const closure = SimplePostC;
let object2 = {};
object2.interpolateColor = reanimatedRexportModule.interpolateColor;
object2.progress = value6;
object2.bgColor = value4;
object2.bgColorHighlighted = value5;
closure.__closure = object2;
closure.__workletHash = 11116019021445;
closure.__initData = env0_22;
const value7 = Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
env0_3.useEffect(_fun112273, [highlight, value6]);
const jsxRuntimeEnv0_20Binding = jsxRuntimeEnv0_20;
object2 = {};
if (highlight) {
items3 = [((View) => <View style={[value2.simplePostContent,
value7]}>{children}</View>)((importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View)];
items3[1] = hideDivider ? null : <Separator_112250 />;
object2.children = items3;
} else {
items2 = [<View style={value2.simplePostContent}>{children}</View>];
items2[1] = hideDivider ? null : <Separator_112250 />;
object2.children = items2;
}
return ((Fragment) => <Fragment {...object2} />)(jsxRuntimeEnv0_20Binding);
}
function ThreadAsComments({guild, parentMessage, onPress, style, inForum}) { // fn#112274, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:10333, offset: 0x023c2917, size: 1027 bytes, params: 2, frame: 30
var r18;
var r11;
const PressableHighlight = (require(5278) /* metro dependency 5278: Pressables */).PressableHighlight;
var items2;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
var defaultImport;
var items3;
const value3 = env0_21();
const {thread, messageCount, mostRecentMessage} = ThreadAsCommentsUseThread(guild, parentMessage,
inForum != null && inForum);
const fluxModule = require(566) /* metro dependency 566: flux */;
const useStateFromStores = fluxModule.useStateFromStores;
if (Reflect.apply(useStateFromStores, fluxModule, [[PermissionStore], function() {
var VIEW_CHANNEL = Permissions.VIEW_CHANNEL;
return PermissionStore.canWithPartialContext(VIEW_CHANNEL, {channelId: parentMessage.id});
}])) {
if (thread == null) {
return (
<PressableHighlight style={[value3.comments, style]} onPress={onPress}>
<Text
variant="text-md/semibold"
color="text-muted"
lineClamp={1}
style={value3.recentCommentText}
>
{intl.string((require(1244) /* metro dependency 1244: indexNative */).t.VMWjXW)}
</Text>
<View style={value3.commentCount}>
{((ChatIcon) => <ChatIcon style={value3.commentsIcon} />)((require(6682) /* metro dependency 6682: ChatIcon */).ChatIcon)}
{((ChevronSmallRightIcon) => <ChevronSmallRightIcon style={value3.chevron} size="xxs" />)((require(6818) /* metro dependency 6818: ChevronSmallRightIcon */).ChevronSmallRightIcon)}
</View>
</PressableHighlight>
);
}
if (mostRecentMessage == null) {
return (
<PressableHighlight style={[value3.comments, style]} onPress={onPress}>
<Text
variant="text-md/semibold"
color="text-muted"
lineClamp={1}
style={value3.recentCommentText}
>
{intl.string((require(1244) /* metro dependency 1244: indexNative */).t.VMWjXW)}
</Text>
<View style={value3.commentCount}>
{((ChatIcon) => <ChatIcon style={value3.commentsIcon} />)((require(6682) /* metro dependency 6682: ChatIcon */).ChatIcon)}
{((ChevronSmallRightIcon) => <ChevronSmallRightIcon style={value3.chevron} size="xxs" />)((require(6818) /* metro dependency 6818: ChevronSmallRightIcon */).ChevronSmallRightIcon)}
</View>
</PressableHighlight>
);
}
r18 = messageCount > 99 ? '99+' : messageCount;
var pressableHighlightProps2 = {style: [value3.comments, style], onPress: onPress};
items2 = [((Avatar) => <Avatar user={mostRecentMessage?.author} guildId={thread.guild_id} size={(require(1305) /* metro dependency 1305: native */).AvatarSizes.XSMALL} />)((require(1305) /* metro dependency 1305: native */).Avatar)];
var textProps2 = {'variant': 'text-sm/semibold', 'lineClamp': 1, style: value3.recentCommentText};
if (mostRecentMessage.content.length > 0) {
defaultImport = importDefault(6622) /* metro dependency 6622: MarkupUtils */;
r11 = defaultImport.parseInlineReply(mostRecentMessage.content, true);
} else {
r11 = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['6kp9H2']);
}
items2[1] = <Text {...textProps2}>{r11}</Text>;
var viewBindingProps = {style: value3.commentCount};
items3 = [((ChatIcon) => <ChatIcon style={value3.commentsIcon} />)((require(6682) /* metro dependency 6682: ChatIcon */).ChatIcon)];
items3[1] = <Text variant="text-sm/bold" color="interactive-text-default">{r18}</Text>;
items3[2] = ((ChevronSmallRightIcon) => <ChevronSmallRightIcon style={value3.chevron} size="xxs" />)((require(6818) /* metro dependency 6818: ChevronSmallRightIcon */).ChevronSmallRightIcon);
items2[2] = <View {...viewBindingProps}>{items3}</View>;
return (
<PressableHighlight {...pressableHighlightProps2}>
{items2}
</PressableHighlight>
);
}
return null;
}
function GuildContentPostOnPress() { // fn#112255, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:3650, owner: GuildContentPost.onPress, offset: 0x023c1395, size: 98 bytes, params: 1, frame: 15
const value = environment.__proto__;
return (require(14855) /* metro dependency 14855: openDetailsActionSheet */).openDetailsActionSheet({guildId: guild.id,
channelId: channel?.id, id: id, type: type});
}
function _fun112258() { // fn#112258, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:4303, offset: 0x023c17cb, size: 105 bytes, params: 1, frame: 20
const readStateActionCreatorsModule = require(5097) /* metro dependency 5097: ReadStateActionCreators */;
const ack = readStateActionCreatorsModule.ack;
const binding = env0_0;
const ICYMI = AnalyticsPages.ICYMI;
const ACK_MESSAGE_VIEWED = AnalyticsObjects.ACK_MESSAGE_VIEWED;
const ACK_SEMI_AUTOMATIC = AnalyticsObjectTypes.ACK_SEMI_AUTOMATIC;
Reflect.apply(ack, readStateActionCreatorsModule, [binding, {page: ICYMI, object: ACK_MESSAGE_VIEWED,
objectType: ACK_SEMI_AUTOMATIC}, true, true, importDefault]);
}
function _fun112259() { // fn#112259, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:4520, offset: 0x023c1834, size: 114 bytes, params: 1, frame: 16
const defaultImport = importDefault(7067) /* metro dependency 7067: MessageActionCreators */;
const fetchMessages = defaultImport.fetchMessages;
const object3 = {};
object3.channelId = env0_0;
object3.limit = MAX_MESSAGES_FOR_JUMP;
const object4 = {};
object4.messageId = importDefault;
object4.flash = true;
const JumpTypes = (require(4044) /* metro dependency 4044: Client */).JumpTypes;
const ANIMATED = JumpTypes.ANIMATED;
object4.jumpType = ANIMATED;
object3.jump = object4;
Reflect.apply(fetchMessages, defaultImport, [object3]);
}
function _fun112262() { // fn#112262, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:5107, offset: 0x023c1b76, size: 153 bytes, params: 1, frame: 20
let value = environment.__proto__;
value = importDefault(9580) /* metro dependency 9580: ICYMIActionCreators */;
const itemInteracted = value.itemInteracted;
const idBinding = id;
Reflect.apply(itemInteracted, value, [idBinding, 'announcement', 'open_profile']);
(importDefault(9580) /* metro dependency 9580: ICYMIActionCreators */).feedItemActioned({itemId: idBinding,
itemType: 'announcement', actionParameters: {'actionGestureType': 'press', 'actionTargetElement': 'item_header',
'actionIntentType': 'open', 'actionDestinationType': 'user'}});
(importDefault(8743) /* metro dependency 8743: showUserProfileActionSheet */)({userId: author.id,
channelId: channel.id});
}
function _fun112264() { // fn#112264, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:6342, offset: 0x023c2069, size: 27 bytes, params: 1, frame: 11
return UserStore.getUser(env0_4);
}
function _fun112265() { // fn#112265, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:6396, offset: 0x023c2084, size: 50 bytes, params: 1, frame: 14
const value2 = null;
return value2 != env0_4 ? GuildMemberStore.getMember(guild.id, env0_4) : value2;
}
function _fun112266() { // fn#112266, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:6452, offset: 0x023c20b6, size: 225 bytes, params: 1, frame: 22
var id;
var value2;
var value3;
var defaultImport;
var itemInteracted;
var eventBinding;
var defaultImport2;
var feedItemActioned;
var object2;
var defaultImport3;
if (user != null) {
value2 = environment.__proto__;
value3 = undefined;
defaultImport = importDefault(9580) /* metro dependency 9580: ICYMIActionCreators */;
itemInteracted = defaultImport.itemInteracted;
eventBinding = event;
id = eventBinding.id;
Reflect.apply(itemInteracted, defaultImport, [id, type, 'open_profile']);
defaultImport2 = importDefault(9580) /* metro dependency 9580: ICYMIActionCreators */;
feedItemActioned = defaultImport2.feedItemActioned;
id = eventBinding.id;
Reflect.apply(feedItemActioned, defaultImport2, [{itemId: id, itemType: 'guild_event',
actionParameters: {'actionGestureType': 'press', 'actionTargetElement': 'item_header',
'actionIntentType': 'open', 'actionDestinationType': 'user'}}]);
defaultImport3 = importDefault(8743) /* metro dependency 8743: showUserProfileActionSheet */;
object2 = {};
id = user.id;
object2.userId = id;
object2.roleId = env0_6 == null ? value3 : env0_6.highestRoleId;
id = channel == null ? value3 : channel.id;
object2.channelId = id;
defaultImport3(object2);
}
}
function _fun112268() { // fn#112268, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:8015, offset: 0x023c252b, size: 50 bytes, params: 1, frame: 13
let value = environment.__proto__;
value = require(9579) /* metro dependency 9579: ICYMIUtils */;
return value.determineContentType(channel, message);
}
function _fun112270() { // fn#112270, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:8481, offset: 0x023c255d, size: 157 bytes, params: 1, frame: 20
let value = environment.__proto__;
value = importDefault(9580) /* metro dependency 9580: ICYMIActionCreators */;
const itemInteracted = value.itemInteracted;
const idBinding = id;
Reflect.apply(itemInteracted, value, [idBinding, type, 'open_profile']);
(importDefault(9580) /* metro dependency 9580: ICYMIActionCreators */).feedItemActioned({itemId: idBinding,
itemType: 'message', actionParameters: {'actionGestureType': 'press', 'actionTargetElement': 'item_header',
'actionIntentType': 'open', 'actionDestinationType': 'user'}});
(importDefault(8743) /* metro dependency 8743: showUserProfileActionSheet */)({userId: author.id,
channelId: channel.id});
}
function SimplePostC() { // fn#112272, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:9733, owner: SimplePost.c, offset: 0x023c281a, size: 92 bytes, params: 1, frame: 17
const object2 = {};
let value = environment.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
object2.backgroundColor = value.interpolateColor(env0_3.get(), [0, 1], [env0_1, env0_2]);
return object2;
}
function _fun112273() { // fn#112273, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:9983, offset: 0x023c2876, size: 161 bytes, params: 1, frame: 23
var binding;
var set;
var withSequence;
var value2;
var moduleValue2;
var withDelay;
var moduleValue3;
var value;
if (highlight) {
binding = env0_3;
set = binding.set;
value = environment.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
withSequence = value.withSequence;
value2 = (require(4504) /* metro dependency 4504: timing */).withTiming(1, {duration: 500});
moduleValue2 = require(4017) /* metro dependency 4017: ReanimatedRexport */;
withDelay = moduleValue2.withDelay;
moduleValue3 = require(4504) /* metro dependency 4504: timing */;
Reflect.apply(set, binding, [Reflect.apply(withSequence, value, [value2, Reflect.apply(withDelay, moduleValue2,
[500, moduleValue3.withTiming(0, {duration: 350})])])]);
}
}
function ThreadAsCommentsUseThread(a0, a1, a2) { // fn#112275, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:10426, owner: ThreadAsComments.useThread, offset: 0x023c2d1a, size: 167 bytes, params: 4, frame: 19
const env0_0 = a0;
const env0_1 = a1;
const env0_2 = a2;
const {thread, messageCount,
mostRecentMessage} = (require(566) /* metro dependency 566: flux */).useStateFromStoresObject([ChannelStore,
ThreadMessageStore], function() {
var object = {};
object.thread = ChannelStore.getChannel(require.id);
object.messageCount = ThreadMessageStore.getCount(require.id) ?? 0;
object.mostRecentMessage = ThreadMessageStore.getMostRecentMessage(require.id);
return object;
});
env1_3.useEffect(_fun112277, [a0.id, a2, a1]);
return {thread: thread, messageCount: messageCount, mostRecentMessage: mostRecentMessage};
}
function _fun112277() { // fn#112277, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15051:10708, offset: 0x023c2e2b, size: 178 bytes, params: 1, frame: 17
var id;
var defaultImport;
var preload;
var fetchMessages;
var value;
const hasFlag = require.hasFlag;
const HAS_THREAD = MessageFlags.HAS_THREAD;
if ((Reflect.apply(hasFlag, require,
[HAS_THREAD]) || importDefault) && ThreadMessageStore.getMostRecentMessage(require.id) == null) {
defaultImport = importDefault(4603) /* metro dependency 4603: ChannelActionCreators */;
preload = defaultImport.preload;
id = env0_0.id;
Reflect.apply(preload, defaultImport, [id, require.id]);
value = importDefault(7067) /* metro dependency 7067: MessageActionCreators */;
fetchMessages = value.fetchMessages;
id = require.id;
Reflect.apply(fetchMessages, value, [{'channelId': null, 'isPreload': true, 'limit': 25, channelId: id}]);
}
}