Files
discord-decomp/modules/messages/native/Messages.tsx
T
2026-11-01 12:12:55 +02:00

402 lines
29 KiB
TypeScript

// Metro module 10467 (f10468).
import { forwardRef, useMemo, useRef, useEffect } from "react";
import AccessibilityStore from "../../a11y/AccessibilityStore";
import EmbeddedActivitiesStore from "../../activities/EmbeddedActivitiesStore";
import ApplicationAssetsStore from "../../applications/ApplicationAssetsStore";
import ApplicationStore from "../../applications/ApplicationStore";
import BuildOverrideStore from "../../build_overrides/BuildOverrideStore";
import CacheStore from "../../cache/CacheStore";
import ChannelRTCStore from "../../calls/ChannelRTCStore";
import VoiceChannelStartTimeStore from "../../channel/VoiceChannelStartTimeStore";
import EmojiStore from "../../emojis/EmojiStore";
import ExperimentStore from "../../experiments/ExperimentStore";
import ExplicitMediaStore from "../../explicit_media_redaction/ExplicitMediaStore";
import ApplicationDirectoryApplicationsStore from "../../global_discovery_apps/stores/ApplicationDirectoryApplicationsStore";
import BasicGuildStore from "../../guild/BasicGuildStore";
import GuildAutomodMessageStore from "../../guild_automod/GuildAutomodMessageStore";
import GuildScheduledEventStore from "../../guild_scheduled_events/GuildScheduledEventStore";
import GuildTemplateStore from "../../guild_templates/GuildTemplateStore";
import LocalInteractionComponentStateStore from "../../interaction_components/LocalInteractionComponentStateStore";
import InteractionStore from "../../interactions/InteractionStore";
import MediaPostEmbedStore from "../../media_channel/MediaPostEmbedStore";
import MediaPostSharePromptStore from "../../media_channel/MediaPostSharePromptStore";
import AuthorizedAppsStore from "../../oauth2/AuthorizedAppsStore";
import FamilyCenterPendingConnectionStore from "../../parent_tools/FamilyCenterPendingConnectionStore";
import { useChannelPollInteractions, useMessagePollInteractions } from "../../polls/PollsInteractionStore";
import ReferralTrialStore from "../../premium/ReferralTrialStore";
import PushFeedbackStore from "../../push_feedback/PushFeedbackStore";
import PendingReplyStore from "../../replies/PendingReplyStore";
import ReferencedMessageStore from "../../replies/ReferencedMessageStore";
import SummaryStore from "../../summaries/SummaryStore";
import JoinedThreadsStore from "../../threads/JoinedThreadsStore";
import ThreadMessageStore from "../../threads/ThreadMessageStore";
import LocaleStore from "../../user_settings/LocaleStore";
import ThemeStore from "../../user_settings/ThemeStore";
import AuthenticationStore from "../../../stores/AuthenticationStore";
import ChannelStore from "../../../stores/ChannelStore";
import EditMessageStore from "../../../stores/EditMessageStore";
import GiftCodeStore from "../../../stores/GiftCodeStore";
import GuildMemberStore from "../../../stores/GuildMemberStore";
import GuildStore from "../../../stores/GuildStore";
import GuildVerificationStore from "../../../stores/GuildVerificationStore";
import InviteStore from "../../../stores/InviteStore";
import MessageStore from "../../../stores/MessageStore";
import PermissionStore from "../../../stores/PermissionStore";
import PresenceStore from "../../../stores/PresenceStore";
import RTCConnectionStore from "../../../stores/RTCConnectionStore";
import ReadStateStore from "../../../stores/ReadStateStore";
import SessionsStore from "../../../stores/SessionsStore";
import UploadStore from "../../../stores/UploadStore";
import UserStore from "../../../stores/UserStore";
import VoiceStateStore from "../../../stores/VoiceStateStore";
import SKUStore from "../../../stores/game_store/SKUStore";
import ActivityLauncherStore from "../../../stores/views/ActivityLauncherStore";
import SortedVoiceStateStore from "../../../stores/views/SortedVoiceStateStore";
import { ActivityActionTypes, ChannelTypesSets, ME, MessageTypes, Permissions } from "../../../Constants";
import { PREMIUM_TIER_2_REFERRAL_TRIAL_ID, PremiumTypes } from "../../premium/PremiumConstants";
import { useStateFromStores, useStateFromStoresObject, useStateFromStoresArray } from "../../../_bundle/Module589";
import Module12 from "../../../_bundle/Module12";
import { areArraysShallowEqual } from "../../../_bundle/shallowEqual";
import ApplicationActionCreators from "../../applications/ApplicationActionCreators";
import { isNotNullish } from "../../../utils/GlobalUtils";
import { InlineAttachmentMedia, InlineEmbedMedia, RenderEmbeds, RenderReactions, DeveloperMode, AnimateEmoji, AnimateStickers, GifAutoPlay, TimestampHourCycle } from "../../user_settings/UserSettings";
import MobileVisualRefreshExperiment from "../../themes/experiments/MobileVisualRefreshExperiment";
import { useIsMessageSwipeActionsEnabled } from "../../../experiments/SwipeToReplyExperiment";
import useSubscribeMissingActivities from "../../activities/useSubscribeMissingActivities";
import { useFetchVoiceChannelInviteStartTimes } from "./MessagesHooks";
import { useCodedLinksExperimentEmbeds } from "../../experiments/client_override_hooks/useCodedLinksExperimentEmbeds";
import { useQuests } from "../../quests/hooks/QuestHooks";
import { useTrialOffer } from "../../premium/useTrialOffer";
import PremiumUtils from "../../../utils/PremiumUtils";
import useIsCallActive from "../../calls/mobile/useIsCallActive";
import { isVersionEqual } from "../../../utils/SecondaryIndexMapUtils";
import { useIsSpamMessageRequest } from "../../message_request/hooks/useIsSpamMessageRequest";
import { useIsMessageRequest } from "../../message_request/hooks/useIsMessageRequest";
import { useCurrentUserCommunicationDisabled } from "../../guild_communication_disabled/useUserCommunicationDisabled";
import { useIsPaymentsBlocked } from "../../billing/experiments/BlockedPaymentsCountryExperiment";
import { useMessageJumpAndroidKeyboardHeight } from "../../../components_native/chat/getMessageJumpData";
import useKeyboardType from "../../keyboard/native/useKeyboardType";
import { useChannelSummariesExperiment } from "../../../experiments/ChannelSummariesExperiment";
import DimensionActionCreators from "../../../actions/DimensionActionCreators";
import { useShouldTrackAnnouncementMessageViews, useShouldTrackRichPresenceInviteEmbedViews, useShouldTrackOfficialMessageViews, useShouldTrackVoiceInviteEmbedViews } from "./MessageImpressionAnalyticsHelpers";
import { useShouldDisplaySpoilerObscurity } from "../computeGlobalSpoilerDisplay";
import { useIsAgeVerified } from "../../age_assurance/AgeVerificationUtils";
import MessageViewTrackingManager from "../MessageViewTrackingManager";
import { useShouldDisableInteractiveComponents } from "../../interaction_components/ComponentStateContext";
import useChatWidth from "../../chat/native/useChatWidth";
import useLoadMessageContentEntries from "../../interaction_components/content_inventory_entry/native/useLoadMessageContentEntries";
import { useColorStore } from "../../avatar/useAvatarColor";
import { getVoiceStateChannelSummaryFromVoiceStates } from "./MessagesUtils";
import { isVoiceChannelInvite } from "../../instant_invite/InviteTypeUtils";
import { useFetchSocialLayerStorefrontProductDetailsEmbedData } from "../../slayer_storefront/native/createSocialLayerStorefrontProductDetailsEmbed";
import StartupProfiler, { Profiles } from "../../app_startup/StartupProfiler";
import ThemedGradient from "../../client_themes/native/ThemedGradient";
import MessagesRenderer from "./MessagesRenderer";
const r140 = forwardRef((a0, a1) => {
let id, guildId, stateFromStores2, stateFromStores3, c17979_6, channelSummariesExperiment, c17979_8, stateFromStoresArray;
const channel = a0.channel;
const stateFromStores = useStateFromStores([MessageStore], () => MessageStore.getMessages(channel.id), [channel.id]);
id = channel.id;
guildId = channel.getGuildId();
stateFromStores2 = useStateFromStores([GuildStore], () => GuildStore.getGuild(guildId));
const systemChannelFlags = stateFromStores2?.systemChannelFlags;
let stateFromStores4, memo;
stateFromStores3 = useStateFromStores([AuthenticationStore], () => AuthenticationStore.getId(), []);
const setting5 = InlineAttachmentMedia.useSetting();
const setting4 = InlineEmbedMedia.useSetting();
const setting3 = RenderEmbeds.useSetting();
const setting2 = RenderReactions.useSetting();
const setting = DeveloperMode.useSetting();
const setting9 = AnimateEmoji.useSetting();
const setting8 = AnimateStickers.useSetting();
const setting7 = GifAutoPlay.useSetting();
const setting6 = TimestampHourCycle.useSetting();
const stateFromStores38 = useStateFromStores([ThemeStore], () => ThemeStore.theme, []);
const isVisualRefreshEnabled = MobileVisualRefreshExperiment("Messages");
const isMessageSwipeActionsEnabled = useIsMessageSwipeActionsEnabled();
stateFromStores4 = stateFromStores;
memo = void 0;
memo = useMemo(() => {
const r0 = {};
let c30220_0 = r0;
stateFromStores4.forEach((item) => {
if (item.author != null && item.activity != null) {
c30220_0[item.author.id] = null;
}
});
return r0;
}, [stateFromStores]);
const stateFromStoresObject3 = useStateFromStoresObject([PresenceStore], () => Module12.mapValues(memo, (a0, a1) => PresenceStore.getPrimaryActivity(a1)), [memo]);
const application_id2 = channel.linkedLobby?.application_id;
let ref;
const stateFromStores5 = stateFromStores;
const application_id = application_id2;
const memo2 = useMemo(() => {
const set = new Set();
let c30221_0 = set;
stateFromStores5.forEach((item) => {
if (item.applicationId != null && item.application == null) {
c30221_0.add(item.applicationId);
}
});
if (application_id != null) {
set.add(application_id);
}
return Array.from(set);
}, [stateFromStores, application_id]);
ref = useRef([]);
useEffect(() => {
if (!areArraysShallowEqual(memo2, ref.current)) {
ApplicationActionCreators.fetchApplications(Module12(memo2).filter(isNotNullish).uniq().value(), false);
ref.current = memo2;
}
}, [memo2]);
const [activityInviteMessageIds, ] = useSubscribeMissingActivities(stateFromStores, channel);
const stateFromStores36 = useStateFromStores([InviteStore], () => InviteStore.getInvites(), []);
useFetchVoiceChannelInviteStartTimes(stateFromStores36);
const stateFromStoresObject4 = useStateFromStoresObject([ApplicationDirectoryApplicationsStore], () => ({
appDirectoryEmbedApplications: ApplicationDirectoryApplicationsStore.getApplications(),
invalidAppDirectoryEmbedApplicationIds: ApplicationDirectoryApplicationsStore.getInvalidApplicationIds(),
appDirectoryEmbedApplicationFetchStates: ApplicationDirectoryApplicationsStore.getApplicationFetchStates()
}), []);
const { appDirectoryEmbedApplications, invalidAppDirectoryEmbedApplicationIds, appDirectoryEmbedApplicationFetchStates } = stateFromStoresObject4;
const stateFromStoresArray9 = useStateFromStoresArray([ApplicationStore], () => ApplicationStore.getFetchingOrFailedFetchingIds());
const stateFromStoresArray8 = useStateFromStoresArray([ApplicationAssetsStore], () => ApplicationAssetsStore.getFetchingIds());
const stateFromStoresArray3 = useStateFromStoresArray([SKUStore], () => SKUStore.getFetchingSkuIds());
const stateFromStoresArray6 = useStateFromStoresArray([EmbeddedActivitiesStore], () => EmbeddedActivitiesStore.getEmbeddedActivitiesForChannel(id).map((item) => item.launchId).filter(isNotNullish), [id]);
const stateFromStoresArray4 = useStateFromStoresArray([EmbeddedActivitiesStore, PresenceStore], () => {
const r0 = [];
let c26674_0 = r0;
const embeddedActivitiesForChannel = EmbeddedActivitiesStore.getEmbeddedActivitiesForChannel(id);
const _loop = function _loop(a0) {
let c30222_0 = a0;
const r16 = PresenceStore.findActivity(a0.userIds.values().next().value, (a0) => a0.application_id === c30222_0.applicationId);
if (r16?.details != null) {
c26674_0.push(`${a0.launchId}:${r16.details}`);
}
};
for (const item of embeddedActivitiesForChannel) {
_loop(item);
}
return r0;
});
const stateFromStoresArray5 = useStateFromStoresArray([EmbeddedActivitiesStore], () => {
const set = new Set();
let c26675_0 = set;
EmbeddedActivitiesStore.getEmbeddedActivitiesByChannel().forEach((a0, c30223_0) => {
a0.forEach((item) => {
item.userIds.forEach((userId) => {
c26675_0.add(`${c30223_0}:${userId}`);
});
});
});
return Array.from(set);
});
const stateFromStoresArray7 = useStateFromStoresArray([EmbeddedActivitiesStore], () => {
const launchStates = EmbeddedActivitiesStore.getLaunchStates();
const r24 = [];
for (const item of launchStates) {
const [, r31] = item;
if (r31.isLaunching && r31.componentId != null && r31.componentId.length > 0) {
r24.push(r31.componentId);
}
}
return r24;
});
const stateFromStores35 = useStateFromStores([MediaPostEmbedStore], () => MediaPostEmbedStore.getMediaPostEmbeds());
const stateFromStores34 = useStateFromStores([GuildTemplateStore], () => GuildTemplateStore.getGuildTemplates(), []);
const stateFromStores33 = useStateFromStores([BuildOverrideStore], () => BuildOverrideStore.getBuildOverrides(), []);
const codedLinksExperimentEmbeds = useCodedLinksExperimentEmbeds();
const quests2 = useQuests({
fetchPolicy: "cache-or-network",
callerSource: "messages_native"
});
const { quests, isFetchingCurrentQuests } = quests2;
c17979_6 = stateFromStores.filter((stateFromStore) => stateFromStore.type === MessageTypes.PREMIUM_REFERRAL).map((item) => item.referralTrialOfferId).filter(isNotNullish);
const stateFromStoresArray2 = useStateFromStoresArray([ReferralTrialStore], () => c17979_6.map((item) => ReferralTrialStore.getRelevantUserTrialOffer(item)?.id).filter(isNotNullish));
const trialOffer = useTrialOffer(PREMIUM_TIER_2_REFERRAL_TRIAL_ID);
const stateFromStores6 = useStateFromStores([UserStore], () => PremiumUtils.isPremiumExactly(UserStore.getCurrentUser(), PremiumTypes.TIER_2));
const stateFromStores32 = useStateFromStores([EditMessageStore], () => EditMessageStore.getEditingMessageId(id), [id]);
const stateFromStores31 = useStateFromStores([PendingReplyStore], () => {
const pendingReply = PendingReplyStore.getPendingReply(id);
return pendingReply == null ? void 0 : pendingReply.message.id;
}, [id]);
const stateFromStores30 = useStateFromStores([ReadStateStore], () => ReadStateStore.getOldestUnreadMessageId(id), [id]);
const stateFromStores29 = useStateFromStores([GuildVerificationStore], () => guildId != null && GuildVerificationStore.canChatInGuild(guildId), [guildId]);
const stateFromStores28 = useStateFromStores([PermissionStore], () => PermissionStore.can(Permissions.SEND_MESSAGES, channel), [channel]);
const isCallActive = useIsCallActive(id);
const stateFromStores27 = useStateFromStores([VoiceStateStore], () => VoiceStateStore.getUserVoiceChannelId(ME, stateFromStores3), [stateFromStores3]);
const stateFromStores26 = useStateFromStores([RTCConnectionStore], () => RTCConnectionStore.getChannelId(), []);
const stateFromStores7 = useStateFromStores([ReferencedMessageStore], () => ChannelTypesSets.THREADS.has(channel.type) ? channel.parent_id != null ? ReferencedMessageStore.getMessageByReference({
channel_id: channel.parent_id,
message_id: channel.id,
guild_id: channel.guild_id
}).message : null : null, [channel]);
const stateFromStoresObject5 = useStateFromStoresObject([GiftCodeStore], () => ({
resolvingGiftCodes: GiftCodeStore.getResolvingCodes(),
resolvedGiftCodes: GiftCodeStore.getResolvedCodes(),
acceptingGiftCodes: GiftCodeStore.getAcceptingCodes()
}), []);
const { resolvingGiftCodes, resolvedGiftCodes, acceptingGiftCodes } = stateFromStoresObject5;
const stateFromStores24 = useStateFromStores([ChannelRTCStore], () => ChannelRTCStore.getParticipants(id).length, [id]);
const stateFromStores23 = useStateFromStores([UploadStore], () => UploadStore.getFiles(id), [id]);
const stateFromStores22 = useStateFromStores([ReferencedMessageStore], () => ReferencedMessageStore.getReplyIdsForChannel(id), [id]);
const stateFromStoresObject6 = useStateFromStoresObject([AccessibilityStore], () => ({
useReducedMotion: AccessibilityStore.useReducedMotion,
roleStyle: AccessibilityStore.roleStyle,
officialMessageStyle: AccessibilityStore.officialMessageStyle,
saturation: AccessibilityStore.saturation,
displayNameStylesEnabled: AccessibilityStore.displayNameStylesEnabled
}), []);
const { useReducedMotion, roleStyle, officialMessageStyle, saturation, displayNameStylesEnabled } = stateFromStoresObject6;
const stateFromStores21 = useStateFromStores([ThreadMessageStore], () => ThreadMessageStore.getChannelThreadsVersion(id), [id]);
const stateFromStoresObject = useStateFromStoresObject([InteractionStore], () => InteractionStore.getMessageInteractionStates());
const [interactionComponentStates, interactionComponentStatesVersion] = useStateFromStores([LocalInteractionComponentStateStore], () => [LocalInteractionComponentStateStore.getInteractionComponentStates(), LocalInteractionComponentStateStore.getInteractionComponentStateVersion()], [], isVersionEqual);
let hasLoadedExperiments = useStateFromStores([ExperimentStore], () => ExperimentStore.hasLoadedExperiments);
const isSpamMessageRequest = useIsSpamMessageRequest(channel.id);
const isMessageRequest = useIsMessageRequest(channel.id);
const isMessagesReady = stateFromStores != null && (stateFromStores.ready || stateFromStores.cached);
const isMessagesCached = stateFromStores != null && stateFromStores.cached;
const isMessagesAckable = stateFromStores != null && stateFromStores.ready && !stateFromStores.loadingMore;
const stateFromStores20 = useStateFromStores([GuildScheduledEventStore], () => GuildScheduledEventStore.getRsvpVersion());
const stateFromStores19 = useStateFromStores([GuildAutomodMessageStore], () => GuildAutomodMessageStore.getMessagesVersion());
const stateFromStores18 = useStateFromStores([GuildMemberStore], () => GuildMemberStore.getCommunicationDisabledVersion());
const stateFromStoresObject2 = useStateFromStoresObject([GuildMemberStore], () => {
if (guildId != null && stateFromStores != null) {
const r6 = {};
let c26676_0 = r6;
stateFromStores.forEach((stateFromStore) => {
if (stateFromStore.author?.id != null) {
const member = GuildMemberStore.getMember(guildId, stateFromStore.author.id);
if (member != null) {
c26676_0[stateFromStore.author.id] = member;
}
}
});
return r6;
}
return {};
}, [guildId, stateFromStores]);
const stateFromStores16 = useStateFromStores([PermissionStore], () => PermissionStore.can(Permissions.MODERATE_MEMBERS, stateFromStores2));
const [, currentUserCommunicationDisabled] = useCurrentUserCommunicationDisabled(stateFromStores2?.id);
const stateFromStores15 = useStateFromStores([LocaleStore], () => LocaleStore.locale);
const isPaymentsBlocked = useIsPaymentsBlocked();
const stateFromStores14 = useStateFromStores([JoinedThreadsStore], () => !!channel.isForumPost() && JoinedThreadsStore.hasJoined(id));
const stateFromStores13 = useStateFromStores([MediaPostSharePromptStore], () => MediaPostSharePromptStore.shouldDisplayPrompt(id));
const stateFromStores11 = useStateFromStores([PushFeedbackStore], () => PushFeedbackStore.isEligible());
const stateFromStores12 = useStateFromStores([CacheStore], () => CacheStore.getLazyCacheStatus());
const messageJumpAndroidKeyboardHeight = useMessageJumpAndroidKeyboardHeight();
const keyboardType = useKeyboardType();
channelSummariesExperiment = useChannelSummariesExperiment(channel);
const stateFromStores10 = useStateFromStores([SummaryStore], () => channelSummariesExperiment ? SummaryStore.selectedSummary(channel.id) : null, [channelSummariesExperiment, channel.id]);
useEffect(() => {
const ready = stateFromStores.ready;
if (!((ready ? stateFromStores.length !== 0 : !ready) || stateFromStores.hasMoreBefore || stateFromStores.hasMoreAfter)) {
DimensionActionCreators.updateChannelDimensions(channel.id, Date.now(), 1, 1, 0);
}
}, [channel.id, stateFromStores.hasMoreAfter, stateFromStores.hasMoreBefore, stateFromStores.length, stateFromStores.ready]);
const shouldTrackAnnouncementMessageViews = useShouldTrackAnnouncementMessageViews({
guild: stateFromStores2,
channel,
messages: stateFromStores,
isMessagesReady
});
const shouldTrackRichPresenceInviteEmbedViews = useShouldTrackRichPresenceInviteEmbedViews({
messages: stateFromStores,
isMessagesReady
});
const shouldTrackOfficialMessageViews = useShouldTrackOfficialMessageViews({
guild: stateFromStores2,
messages: stateFromStores,
isMessagesReady
});
const shouldTrackVoiceInviteEmbedViews = useShouldTrackVoiceInviteEmbedViews({
messages: stateFromStores,
isMessagesReady
});
const shouldDisplaySpoilerObscurity = useShouldDisplaySpoilerObscurity(channel);
const isAgeVerified = useIsAgeVerified();
useEffect(() => {
MessageViewTrackingManager.handleChannelSelect();
return () => {
MessageViewTrackingManager.handleChannelSelect();
};
}, [id, guildId]);
const shouldDisableInteractiveComponents = useShouldDisableInteractiveComponents(channel.id);
const channelPollInteractions = useChannelPollInteractions(channel.id);
const r596 = [];
c17979_8 = r596;
stateFromStores.forEach((stateFromStore) => {
const message_id = stateFromStore.messageReference?.message_id;
if (message_id != null) {
c17979_8.push(message_id);
}
});
const messagePollInteractions = useMessagePollInteractions(r596);
const stateFromStores9 = useStateFromStores([ExplicitMediaStore], () => ExplicitMediaStore.getChannelFpInfo(id), [id]);
const stateFromStores8 = useStateFromStores([FamilyCenterPendingConnectionStore], () => FamilyCenterPendingConnectionStore.getPendingConnection());
const chatWidth = useChatWidth();
const loadMessageContentEntries = useLoadMessageContentEntries(stateFromStores);
const { unloadedContentEntryMessageIds, unloadableContentEntryMessageIds } = loadMessageContentEntries;
const stateFromStores37 = useStateFromStores([UserStore], () => {
const currentUser = UserStore.getCurrentUser();
let r6 = currentUser == null ? void 0 : currentUser.isStaff();
if (r6 == null) {
r6 = false;
}
return r6;
});
const stateFromStores17 = useStateFromStores([BasicGuildStore], () => BasicGuildStore.getVersion());
const colorStore = useColorStore((a0) => Object.keys(a0.palette).length);
const stateFromStores39 = useStateFromStores([EmojiStore], () => EmojiStore.getGuildEmoji(guildId));
const stateFromStores25 = useStateFromStores([VoiceStateStore], () => {
if (guildId == null) {
return null;
}
return getVoiceStateChannelSummaryFromVoiceStates(VoiceStateStore.getVoiceStates(guildId));
}, [guildId]);
const stateFromStoresObject7 = useStateFromStoresObject([SortedVoiceStateStore, VoiceChannelStartTimeStore, InviteStore, ChannelStore], () => {
const r0 = {};
for (const item of InviteStore.getInvites().values()) {
if (item.channel?.id != null && isVoiceChannelInvite(item)) {
const id3 = item.channel.id;
const id2 = item.guild?.id;
const r61 = SortedVoiceStateStore.getVoiceStatesForChannelAlt(id3, id2).map((item) => `${item.voiceState.selfStream ? "*" : ""}${item.user.id}`).join(",");
let r65 = VoiceChannelStartTimeStore.getStartTime(ChannelStore.getChannel(id3));
if (r65 == null) {
r65 = "";
}
r0[id3] = `${r61}:${r65}`;
}
}
return r0;
});
stateFromStoresArray = useStateFromStoresArray([SessionsStore], () => [...SessionsStore.getRemoteActivities(), ...SessionsStore.getHiddenActivities()].filter(isNotNullish));
const stateFromStoresObject8 = useStateFromStoresObject([ActivityLauncherStore], () => stateFromStoresArray.reduce((acc, item) => {
if (item.application_id == null) {
return acc;
}
const state = ActivityLauncherStore.getState(item.application_id, ActivityActionTypes.JOIN);
if (state != null) {
acc[item.application_id] = state;
}
return acc;
}, {}));
const stateFromStoresArray10 = useStateFromStoresArray([AuthorizedAppsStore], () => [AuthorizedAppsStore.getNewestTokens(), AuthorizedAppsStore.getApplicationFetchStateVersion()], []);
const stateFromStores40 = useStateFromStores([UserStore], () => UserStore.getCurrentUser()?.displayNameStyles);
useFetchSocialLayerStorefrontProductDetailsEmbedData(stateFromStores);
const r704 = [channel.isThread() && <ThemedGradient absolute />, ,];
if (hasLoadedExperiments) {
hasLoadedExperiments = isMessagesReady;
}
const id2 = trialOffer?.id;
let officialMessageColor = stateFromStores2?.officialMessageColor;
if (officialMessageColor == null) {
officialMessageColor = void 0;
}
r704[1] = <MessagesRenderer ref={a1} theme={stateFromStores38} saturation={saturation} isVisualRefreshEnabled={isVisualRefreshEnabled} isStaff={stateFromStores37} animateEmoji={setting9} animateStickers={setting8} containerWidth={chatWidth} gifAutoPlay={setting7} timestampHourCycle={setting6} inlineAttachmentMedia={setting5} inlineEmbedMedia={setting4} renderEmbeds={setting3} renderReactions={setting2} developerMode={setting} roleStyle={roleStyle} officialMessageStyle={officialMessageStyle} guildId={guildId} currentUserId={stateFromStores3} channelId={id} isMessagesReady={isMessagesReady} isMessagesCached={isMessagesCached} isMessagesAckable={isMessagesAckable} isMessageRequest={isMessageRequest} isSpamMessageRequest={isSpamMessageRequest} messageAuthorActivities={stateFromStoresObject3} invites={stateFromStores36} appDirectoryEmbedApplications={appDirectoryEmbedApplications} invalidAppDirectoryEmbedApplicationIds={invalidAppDirectoryEmbedApplicationIds} invalidApplicationIds={stateFromStoresArray9} applicationAssetFetchingIds={stateFromStoresArray8} messages={stateFromStores} messagesWithActivitiesLaunching={stateFromStoresArray7} activityInstanceIds={stateFromStoresArray6} activityParticipants={stateFromStoresArray5} activityInstancePresenceDetails={stateFromStoresArray4} appDirectoryEmbedApplicationFetchStates={appDirectoryEmbedApplicationFetchStates} mediaPostPreviewEmbeds={stateFromStores35} guildTemplates={stateFromStores34} buildOverrides={stateFromStores33} fetchingSkuIds={stateFromStoresArray3} experimentEmbeds={codedLinksExperimentEmbeds} quests={quests} isFetchingCurrentQuests={isFetchingCurrentQuests} editingMessageId={stateFromStores32} replyingMessageId={stateFromStores31} oldestUnreadMessageId={stateFromStores30} canChat={stateFromStores29} canSendMessages={stateFromStores28} isCallActive={isCallActive} voiceStatePrivateChannelId={stateFromStores27} currentClientVoiceChannelId={stateFromStores26} voiceStateChannelIdSummaryForGuild={stateFromStores25} resolvingGiftCodes={resolvingGiftCodes} resolvedGiftCodes={resolvedGiftCodes} acceptingGiftCodes={acceptingGiftCodes} participantsLength={stateFromStores24} uploads={stateFromStores23} repliedIds={stateFromStores22} useReducedMotion={useReducedMotion} displayNameStylesEnabled={displayNameStylesEnabled} channelThreadsVersion={stateFromStores21} rsvpVersion={stateFromStores20} failedMessagesVersion={stateFromStores19} communicationDisabledVersion={stateFromStores18} messageAuthorMembers={stateFromStoresObject2} forwardGuildsVersion={stateFromStores17} interactionStates={stateFromStoresObject} interactionComponentStates={interactionComponentStates} interactionComponentStatesVersion={interactionComponentStatesVersion} hasLoadedExperiments={hasLoadedExperiments} guildSystemChannelFlags={systemChannelFlags} currentUserCommunicationDisabled={currentUserCommunicationDisabled} renderCommunicationDisabled={stateFromStores16} userSettingsLocale={stateFromStores15} paymentsBlocked={isPaymentsBlocked} isFollowingForumPost={stateFromStores14} showMediaPostSharePrompt={stateFromStores13} showPushFeedback={stateFromStores11} cacheStoreLoaded={stateFromStores12 !== "initializing"} androidKeyboardHeight={messageJumpAndroidKeyboardHeight} selectedSummary={stateFromStores10} keyboardType={keyboardType} shouldTrackAnnouncementMessageViews={shouldTrackAnnouncementMessageViews} shouldTrackRichPresenceInviteEmbedViews={shouldTrackRichPresenceInviteEmbedViews} shouldTrackOfficialMessageViews={shouldTrackOfficialMessageViews} shouldTrackVoiceInviteEmbedViews={shouldTrackVoiceInviteEmbedViews} shouldObscureSpoiler={shouldDisplaySpoilerObscurity} shouldDisableInteractiveComponents={shouldDisableInteractiveComponents} channelPolls={channelPollInteractions} messageReferencePolls={messagePollInteractions} explicitMediaFalsePositiveInfo={stateFromStores9} familyCenterPendingConnection={stateFromStores8} threadStartingReferenceMessage={stateFromStores7} unloadedContentEntryMessageIds={unloadedContentEntryMessageIds} unloadableContentEntryMessageIds={unloadableContentEntryMessageIds} resolvedReferralTrialOfferIds={stateFromStoresArray2} referralTrialOfferId={id2} isPremiumTier2User={stateFromStores6} activityInviteMessageIds={activityInviteMessageIds} guildInviteColorsFetched={colorStore} isAgeVerified={isAgeVerified} guildEmojis={stateFromStores39} enableSwipeActions={isMessageSwipeActionsEnabled} selfActivities={stateFromStoresArray} activityLaunchJoinStates={stateFromStoresObject8} authorizedAppsTokens={stateFromStoresArray10} currentUserDisplayNameStyles={stateFromStores40} voiceInviteDataByChannelId={stateFromStoresObject7} officialMessageColor={officialMessageColor} {...a0} />;
return <StartupProfiler profile={Profiles.Messages}>{r704}</StartupProfiler>;
});
r140.displayName = "MessagesConnected";
export default r140;