402 lines
29 KiB
TypeScript
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;
|