From f45a5ff0234de080588181654bee0095e430e3ce Mon Sep 17 00:00:00 2001 From: zubiden <19638254+zubiden@users.noreply.github.com> Date: Wed, 12 Jun 2024 18:10:48 +0200 Subject: [PATCH] Poll: Support custom emoji (#4626) --- src/api/gramjs/apiBuilders/messageContent.ts | 5 +- src/api/gramjs/gramjsBuilders/index.ts | 14 +++- src/api/types/messages.ts | 4 +- src/components/common/MessageSummary.tsx | 8 +- .../common/embedded/EmbeddedMessage.tsx | 2 +- .../helpers/renderActionMessageText.tsx | 2 +- .../common/helpers/renderMessageText.ts | 6 +- .../left/settings/SettingsDoNotTranslate.tsx | 2 +- src/components/middle/composer/PollModal.tsx | 8 +- src/components/middle/message/Poll.tsx | 27 ++++++- src/components/middle/message/PollOption.tsx | 7 +- .../middle/message/helpers/copyOptions.ts | 2 +- src/components/right/PollAnswerResults.tsx | 8 +- src/components/right/PollResults.tsx | 9 ++- src/components/ui/CheckboxGroup.tsx | 4 +- src/global/actions/ui/messages.ts | 3 +- src/global/helpers/index.ts | 1 - src/global/helpers/messageSummary.ts | 6 +- src/lib/gramjs/tl/AllTLObjects.js | 2 +- src/lib/gramjs/tl/api.d.ts | 78 +++++++++++++++---- src/lib/gramjs/tl/apiTl.js | 11 ++- src/lib/gramjs/tl/static/api.tl | 14 +++- src/util/notifications.ts | 2 +- 23 files changed, 171 insertions(+), 54 deletions(-) diff --git a/src/api/gramjs/apiBuilders/messageContent.ts b/src/api/gramjs/apiBuilders/messageContent.ts index b9f487625..999fb2f4a 100644 --- a/src/api/gramjs/apiBuilders/messageContent.ts +++ b/src/api/gramjs/apiBuilders/messageContent.ts @@ -29,6 +29,7 @@ import { SUPPORTED_IMAGE_CONTENT_TYPES, SUPPORTED_VIDEO_CONTENT_TYPES, VIDEO_WEB import { pick } from '../../../util/iteratees'; import { addStoryToLocalDb, serializeBytes } from '../helpers'; import { + buildApiFormattedText, buildApiMessageEntity, buildApiPhoto, buildApiPhotoSize, @@ -609,7 +610,7 @@ export function buildMessageStoryData(media: GramJs.TypeMessageMedia): ApiMessag export function buildPoll(poll: GramJs.Poll, pollResults: GramJs.PollResults): ApiPoll { const { id, answers: rawAnswers } = poll; const answers = rawAnswers.map((answer) => ({ - text: answer.text, + text: buildApiFormattedText(answer.text), option: serializeBytes(answer.option), })); @@ -617,11 +618,11 @@ export function buildPoll(poll: GramJs.Poll, pollResults: GramJs.PollResults): A id: String(id), summary: { isPublic: poll.publicVoters, + question: buildApiFormattedText(poll.question), ...pick(poll, [ 'closed', 'multipleChoice', 'quiz', - 'question', 'closePeriod', 'closeDate', ]), diff --git a/src/api/gramjs/gramjsBuilders/index.ts b/src/api/gramjs/gramjsBuilders/index.ts index e3710bb6a..9b7872592 100644 --- a/src/api/gramjs/gramjsBuilders/index.ts +++ b/src/api/gramjs/gramjsBuilders/index.ts @@ -169,9 +169,12 @@ export function buildInputPoll(pollParams: ApiNewPoll, randomId: BigInt.BigInteg const poll = new GramJs.Poll({ id: randomId, publicVoters: summary.isPublic, - question: summary.question, + question: buildInputTextWithEntities(summary.question), answers: summary.answers.map(({ text, option }) => { - return new GramJs.PollAnswer({ text, option: deserializeBytes(option) }); + return new GramJs.PollAnswer({ + text: buildInputTextWithEntities(text), + option: deserializeBytes(option), + }); }), quiz: summary.quiz, multipleChoice: summary.multipleChoice, @@ -200,9 +203,12 @@ export function buildInputPollFromExisting(poll: ApiPoll, shouldClose = false) { poll: new GramJs.Poll({ id: BigInt(poll.id), publicVoters: poll.summary.isPublic, - question: poll.summary.question, + question: buildInputTextWithEntities(poll.summary.question), answers: poll.summary.answers.map(({ text, option }) => { - return new GramJs.PollAnswer({ text, option: deserializeBytes(option) }); + return new GramJs.PollAnswer({ + text: buildInputTextWithEntities(text), + option: deserializeBytes(option), + }); }), quiz: poll.summary.quiz, multipleChoice: poll.summary.multipleChoice, diff --git a/src/api/types/messages.ts b/src/api/types/messages.ts index dfb823f2f..a21562053 100644 --- a/src/api/types/messages.ts +++ b/src/api/types/messages.ts @@ -139,7 +139,7 @@ export interface ApiContact { } export interface ApiPollAnswer { - text: string; + text: ApiFormattedText; option: string; } @@ -157,7 +157,7 @@ export interface ApiPoll { isPublic?: true; multipleChoice?: true; quiz?: true; - question: string; + question: ApiFormattedText; answers: ApiPollAnswer[]; closePeriod?: number; closeDate?: number; diff --git a/src/components/common/MessageSummary.tsx b/src/components/common/MessageSummary.tsx index 555a330f6..fea69ee39 100644 --- a/src/components/common/MessageSummary.tsx +++ b/src/components/common/MessageSummary.tsx @@ -7,11 +7,14 @@ import { ApiMessageEntityTypes } from '../../api/types'; import { extractMessageText, + getMessagePoll, +} from '../../global/helpers'; +import { getMessageSummaryDescription, getMessageSummaryEmoji, getMessageSummaryText, TRUNCATED_SUMMARY_LENGTH, -} from '../../global/helpers'; +} from '../../global/helpers/messageSummary'; import trimText from '../../util/trimText'; import renderText from './helpers/renderText'; @@ -47,8 +50,9 @@ function MessageSummary({ const { text, entities } = extractMessageText(message, inChatList) || {}; const hasSpoilers = entities?.some((e) => e.type === ApiMessageEntityTypes.Spoiler); const hasCustomEmoji = entities?.some((e) => e.type === ApiMessageEntityTypes.CustomEmoji); + const hasPoll = Boolean(getMessagePoll(message)); - if (!text || (!hasSpoilers && !hasCustomEmoji)) { + if ((!text || (!hasSpoilers && !hasCustomEmoji)) && !hasPoll) { const summaryText = translatedText?.text || getMessageSummaryText(lang, message, noEmoji); const trimmedText = trimText(summaryText, truncateLength); diff --git a/src/components/common/embedded/EmbeddedMessage.tsx b/src/components/common/embedded/EmbeddedMessage.tsx index 9a6855026..09926cb4a 100644 --- a/src/components/common/embedded/EmbeddedMessage.tsx +++ b/src/components/common/embedded/EmbeddedMessage.tsx @@ -11,7 +11,6 @@ import type { IconName } from '../../../types/icons'; import { CONTENT_NOT_SUPPORTED } from '../../../config'; import { - getMediaContentTypeDescription, getMessageIsSpoiler, getMessageMediaHash, getMessageRoundVideo, @@ -22,6 +21,7 @@ import { isMessageTranslatable, isUserId, } from '../../../global/helpers'; +import { getMediaContentTypeDescription } from '../../../global/helpers/messageSummary'; import buildClassName from '../../../util/buildClassName'; import freezeWhenClosed from '../../../util/hoc/freezeWhenClosed'; import { getPictogramDimensions } from '../helpers/mediaDimensions'; diff --git a/src/components/common/helpers/renderActionMessageText.tsx b/src/components/common/helpers/renderActionMessageText.tsx index 1cbce3c92..053cf2ea8 100644 --- a/src/components/common/helpers/renderActionMessageText.tsx +++ b/src/components/common/helpers/renderActionMessageText.tsx @@ -10,10 +10,10 @@ import type { TextPart } from '../../../types'; import { getChatTitle, getExpiredMessageDescription, - getMessageSummaryText, getUserFullName, isExpiredMessage, } from '../../../global/helpers'; +import { getMessageSummaryText } from '../../../global/helpers/messageSummary'; import { formatCurrency } from '../../../util/formatCurrency'; import trimText from '../../../util/trimText'; import renderText from './renderText'; diff --git a/src/components/common/helpers/renderMessageText.ts b/src/components/common/helpers/renderMessageText.ts index e7d26e3c3..6d248b6ba 100644 --- a/src/components/common/helpers/renderMessageText.ts +++ b/src/components/common/helpers/renderMessageText.ts @@ -3,13 +3,15 @@ import type { LangFn } from '../../../hooks/useLang'; import type { TextPart } from '../../../types'; import { ApiMessageEntityTypes } from '../../../api/types'; +import { + getMessageText, +} from '../../../global/helpers'; import { getMessageSummaryDescription, getMessageSummaryEmoji, getMessageSummaryText, - getMessageText, TRUNCATED_SUMMARY_LENGTH, -} from '../../../global/helpers'; +} from '../../../global/helpers/messageSummary'; import { getMessageKey } from '../../../util/messageKey'; import trimText from '../../../util/trimText'; import renderText from './renderText'; diff --git a/src/components/left/settings/SettingsDoNotTranslate.tsx b/src/components/left/settings/SettingsDoNotTranslate.tsx index c5160bcb5..aedd41896 100644 --- a/src/components/left/settings/SettingsDoNotTranslate.tsx +++ b/src/components/left/settings/SettingsDoNotTranslate.tsx @@ -125,7 +125,7 @@ const SettingsDoNotTranslate: FC = ({ } return displayedOptions.filter((option) => ( - option.label.toLowerCase().includes(search.toLowerCase()) + option.label.toString().toLowerCase().includes(search.toLowerCase()) || option.subLabel?.toLowerCase().includes(search.toLowerCase()) || option.value.toLowerCase().includes(search.toLowerCase()) )); diff --git a/src/components/middle/composer/PollModal.tsx b/src/components/middle/composer/PollModal.tsx index 48fc391b9..0129c2469 100644 --- a/src/components/middle/composer/PollModal.tsx +++ b/src/components/middle/composer/PollModal.tsx @@ -111,7 +111,9 @@ const PollModal: FC = ({ if (!text) return undefined; return { - text, + text: { + text, + }, option: String(index), ...(index === correctOption && { correct: true }), }; @@ -141,7 +143,9 @@ const PollModal: FC = ({ const payload: ApiNewPoll = { summary: { - question: questionTrimmed, + question: { + text: questionTrimmed, + }, answers, ...(!isAnonymous && { isPublic: true }), ...(isMultipleAnswers && { multipleChoice: true }), diff --git a/src/components/middle/message/Poll.tsx b/src/components/middle/message/Poll.tsx index f7a211e48..fbc15de91 100644 --- a/src/components/middle/message/Poll.tsx +++ b/src/components/middle/message/Poll.tsx @@ -12,11 +12,11 @@ import { getActions, getGlobal, withGlobal } from '../../../global'; import type { ApiMessage, ApiPeer, ApiPoll, ApiPollAnswer, } from '../../../api/types'; +import type { ObserveFn } from '../../../hooks/useIntersectionObserver'; import type { LangFn } from '../../../hooks/useLang'; import { formatMediaDuration } from '../../../util/date/dateFormat'; import { getServerTime } from '../../../util/serverTime'; -import renderText from '../../common/helpers/renderText'; import { renderTextWithEntities } from '../../common/helpers/renderTextWithEntities'; import useLang from '../../../hooks/useLang'; @@ -34,6 +34,8 @@ import './Poll.scss'; type OwnProps = { message: ApiMessage; poll: ApiPoll; + observeIntersectionForLoading?: ObserveFn; + observeIntersectionForPlaying?: ObserveFn; onSendVote: (options: string[]) => void; }; @@ -52,6 +54,8 @@ const Poll: FC = ({ message, poll, recentVoterIds, + observeIntersectionForLoading, + observeIntersectionForPlaying, onSendVote, }) => { const { loadMessage, openPollResults, requestConfetti } = getActions(); @@ -81,10 +85,18 @@ const Poll: FC = ({ return voteResults?.filter((r) => r.isCorrect).map((r) => r.option) || []; }, [voteResults]); const answers = useMemo(() => summary.answers.map((a) => ({ - label: a.text, + label: renderTextWithEntities({ + text: a.text.text, + entities: a.text.entities, + observeIntersectionForLoading, + observeIntersectionForPlaying, + }), value: a.option, hidden: Boolean(summary.quiz && summary.closePeriod && closePeriod <= 0), - })), [closePeriod, summary]); + })), [ + closePeriod, observeIntersectionForLoading, observeIntersectionForPlaying, + summary.answers, summary.closePeriod, summary.quiz, + ]); useEffect(() => { const chosen = poll.results.results?.find((result) => result.isChosen); @@ -238,7 +250,14 @@ const Poll: FC = ({ return (
{renderSolution()} -
{renderText(summary.question, ['emoji', 'br'])}
+
+ {renderTextWithEntities({ + text: summary.question.text, + entities: summary.question.entities, + observeIntersectionForLoading, + observeIntersectionForPlaying, + })} +
{lang(getPollTypeString(summary))} {renderRecentVoters()} diff --git a/src/components/middle/message/PollOption.tsx b/src/components/middle/message/PollOption.tsx index 2d5954e5e..93fbf00ed 100644 --- a/src/components/middle/message/PollOption.tsx +++ b/src/components/middle/message/PollOption.tsx @@ -7,7 +7,7 @@ import React, { import type { ApiPollAnswer, ApiPollResult } from '../../../api/types'; import buildClassName from '../../../util/buildClassName'; -import renderText from '../../common/helpers/renderText'; +import { renderTextWithEntities } from '../../common/helpers/renderTextWithEntities'; import './PollOption.scss'; @@ -65,7 +65,10 @@ const PollOption: FC = ({
- {renderText(answer.text)} + {renderTextWithEntities({ + text: answer.text.text, + entities: answer.text.entities, + })}
{shouldAnimate && ( diff --git a/src/components/middle/message/helpers/copyOptions.ts b/src/components/middle/message/helpers/copyOptions.ts index e15222a26..3e3126800 100644 --- a/src/components/middle/message/helpers/copyOptions.ts +++ b/src/components/middle/message/helpers/copyOptions.ts @@ -8,11 +8,11 @@ import { getMessageMediaHash, getMessagePhoto, getMessageText, - getMessageTextWithSpoilers, getMessageWebPagePhoto, getMessageWebPageVideo, hasMessageLocalBlobUrl, } from '../../../../global/helpers'; +import { getMessageTextWithSpoilers } from '../../../../global/helpers/messageSummary'; import { CLIPBOARD_ITEM_SUPPORTED, copyHtmlToClipboard, diff --git a/src/components/right/PollAnswerResults.tsx b/src/components/right/PollAnswerResults.tsx index 6d4957a53..20731c01b 100644 --- a/src/components/right/PollAnswerResults.tsx +++ b/src/components/right/PollAnswerResults.tsx @@ -14,6 +14,7 @@ import type { import { isUserId } from '../../global/helpers'; import { selectTabState } from '../../global/selectors'; +import { renderTextWithEntities } from '../common/helpers/renderTextWithEntities'; import useLang from '../../hooks/useLang'; import usePrevious from '../../hooks/usePrevious'; @@ -133,7 +134,12 @@ const PollAnswerResults: FC = ({ {voters && renderViewMoreButton()}
- {text} + + {renderTextWithEntities({ + text: text.text, + entities: text.entities, + })} + {getPercentage(answerVote.votersCount, totalVoters)}% diff --git a/src/components/right/PollResults.tsx b/src/components/right/PollResults.tsx index 2e7dba871..73652c024 100644 --- a/src/components/right/PollResults.tsx +++ b/src/components/right/PollResults.tsx @@ -7,7 +7,7 @@ import type { ApiChat, ApiMessage } from '../../api/types'; import { getMessagePoll } from '../../global/helpers'; import { selectChat, selectChatMessage, selectTabState } from '../../global/selectors'; import { buildCollectionByKey } from '../../util/iteratees'; -import renderText from '../common/helpers/renderText'; +import { renderTextWithEntities } from '../common/helpers/renderTextWithEntities'; import useHistoryBack from '../../hooks/useHistoryBack'; import useLang from '../../hooks/useLang'; @@ -53,7 +53,12 @@ const PollResults: FC = ({ return (
-

{renderText(summary.question, ['emoji', 'br'])}

+

+ {renderTextWithEntities({ + text: summary.question.text, + entities: summary.question.entities, + })} +

{summary.answers.map((answer) => ( { - text: string; + text: Api.TypeTextWithEntities; option: bytes; }; export class Poll extends VirtualClass<{ @@ -7447,7 +7448,7 @@ namespace Api { publicVoters?: true; multipleChoice?: true; quiz?: true; - question: string; + question: Api.TypeTextWithEntities; answers: Api.TypePollAnswer[]; closePeriod?: int; closeDate?: int; @@ -7458,7 +7459,7 @@ namespace Api { publicVoters?: true; multipleChoice?: true; quiz?: true; - question: string; + question: Api.TypeTextWithEntities; answers: Api.TypePollAnswer[]; closePeriod?: int; closeDate?: int; @@ -8901,6 +8902,22 @@ namespace Api { iconEmojiId: long; emoticons: string[]; }; + export class EmojiGroupGreeting extends VirtualClass<{ + title: string; + iconEmojiId: long; + emoticons: string[]; + }> { + title: string; + iconEmojiId: long; + emoticons: string[]; + }; + export class EmojiGroupPremium extends VirtualClass<{ + title: string; + iconEmojiId: long; + }> { + title: string; + iconEmojiId: long; + }; export class TextWithEntities extends VirtualClass<{ text: string; entities: Api.TypeMessageEntity[]; @@ -9845,6 +9862,15 @@ namespace Api { sound: Api.TypeNotificationSound; showPreviews: Bool; }; + export class BroadcastRevenueBalances extends VirtualClass<{ + currentBalance: long; + availableBalance: long; + overallRevenue: long; + }> { + currentBalance: long; + availableBalance: long; + overallRevenue: long; + }; export class ResPQ extends VirtualClass<{ nonce: int128; serverNonce: int128; @@ -10340,6 +10366,20 @@ namespace Api { pushTimeout?: int; length: int; }; + export class SentCodeTypeSmsWord extends VirtualClass<{ + // flags: undefined; + beginning?: string; + } | void> { + // flags: undefined; + beginning?: string; + }; + export class SentCodeTypeSmsPhrase extends VirtualClass<{ + // flags: undefined; + beginning?: string; + } | void> { + // flags: undefined; + beginning?: string; + }; export class LoginToken extends VirtualClass<{ expires: int; token: bytes; @@ -12196,16 +12236,12 @@ namespace Api { export class BroadcastRevenueStats extends VirtualClass<{ topHoursGraph: Api.TypeStatsGraph; revenueGraph: Api.TypeStatsGraph; - currentBalance: long; - availableBalance: long; - overallRevenue: long; + balances: Api.TypeBroadcastRevenueBalances; usdRate: double; }> { topHoursGraph: Api.TypeStatsGraph; revenueGraph: Api.TypeStatsGraph; - currentBalance: long; - availableBalance: long; - overallRevenue: long; + balances: Api.TypeBroadcastRevenueBalances; usdRate: double; }; export class BroadcastRevenueWithdrawalUrl extends VirtualClass<{ @@ -12811,6 +12847,15 @@ namespace Api { phoneNumber: string; phoneCodeHash: string; }; + export class ReportMissingCode extends Request, Bool> { + phoneNumber: string; + phoneCodeHash: string; + mnc: string; + }; } export namespace account { @@ -15757,6 +15802,11 @@ namespace Api { offsetId: long; limit: int; }; + export class GetEmojiStickerGroups extends Request, messages.TypeEmojiGroups> { + hash: int; + }; } export namespace updates { @@ -17725,11 +17775,11 @@ namespace Api { } export type AnyRequest = InvokeAfterMsg | InvokeAfterMsgs | InitConnection | InvokeWithLayer | InvokeWithoutUpdates | InvokeWithMessagesRange | InvokeWithTakeout | InvokeWithBusinessConnection | ReqPq | ReqPqMulti | ReqPqMultiNew | ReqDHParams | SetClientDHParams | DestroyAuthKey | RpcDropAnswer | GetFutureSalts | Ping | PingDelayDisconnect | DestroySession - | auth.SendCode | auth.SignUp | auth.SignIn | auth.LogOut | auth.ResetAuthorizations | auth.ExportAuthorization | auth.ImportAuthorization | auth.BindTempAuthKey | auth.ImportBotAuthorization | auth.CheckPassword | auth.RequestPasswordRecovery | auth.RecoverPassword | auth.ResendCode | auth.CancelCode | auth.DropTempAuthKeys | auth.ExportLoginToken | auth.ImportLoginToken | auth.AcceptLoginToken | auth.CheckRecoveryPassword | auth.ImportWebTokenAuthorization | auth.RequestFirebaseSms | auth.ResetLoginEmail + | auth.SendCode | auth.SignUp | auth.SignIn | auth.LogOut | auth.ResetAuthorizations | auth.ExportAuthorization | auth.ImportAuthorization | auth.BindTempAuthKey | auth.ImportBotAuthorization | auth.CheckPassword | auth.RequestPasswordRecovery | auth.RecoverPassword | auth.ResendCode | auth.CancelCode | auth.DropTempAuthKeys | auth.ExportLoginToken | auth.ImportLoginToken | auth.AcceptLoginToken | auth.CheckRecoveryPassword | auth.ImportWebTokenAuthorization | auth.RequestFirebaseSms | auth.ResetLoginEmail | auth.ReportMissingCode | account.RegisterDevice | account.UnregisterDevice | account.UpdateNotifySettings | account.GetNotifySettings | account.ResetNotifySettings | account.UpdateProfile | account.UpdateStatus | account.GetWallPapers | account.ReportPeer | account.CheckUsername | account.UpdateUsername | account.GetPrivacy | account.SetPrivacy | account.DeleteAccount | account.GetAccountTTL | account.SetAccountTTL | account.SendChangePhoneCode | account.ChangePhone | account.UpdateDeviceLocked | account.GetAuthorizations | account.ResetAuthorization | account.GetPassword | account.GetPasswordSettings | account.UpdatePasswordSettings | account.SendConfirmPhoneCode | account.ConfirmPhone | account.GetTmpPassword | account.GetWebAuthorizations | account.ResetWebAuthorization | account.ResetWebAuthorizations | account.GetAllSecureValues | account.GetSecureValue | account.SaveSecureValue | account.DeleteSecureValue | account.GetAuthorizationForm | account.AcceptAuthorization | account.SendVerifyPhoneCode | account.VerifyPhone | account.SendVerifyEmailCode | account.VerifyEmail | account.InitTakeoutSession | account.FinishTakeoutSession | account.ConfirmPasswordEmail | account.ResendPasswordEmail | account.CancelPasswordEmail | account.GetContactSignUpNotification | account.SetContactSignUpNotification | account.GetNotifyExceptions | account.GetWallPaper | account.UploadWallPaper | account.SaveWallPaper | account.InstallWallPaper | account.ResetWallPapers | account.GetAutoDownloadSettings | account.SaveAutoDownloadSettings | account.UploadTheme | account.CreateTheme | account.UpdateTheme | account.SaveTheme | account.InstallTheme | account.GetTheme | account.GetThemes | account.SetContentSettings | account.GetContentSettings | account.GetMultiWallPapers | account.GetGlobalPrivacySettings | account.SetGlobalPrivacySettings | account.ReportProfilePhoto | account.ResetPassword | account.DeclinePasswordReset | account.GetChatThemes | account.SetAuthorizationTTL | account.ChangeAuthorizationSettings | account.GetSavedRingtones | account.SaveRingtone | account.UploadRingtone | account.UpdateEmojiStatus | account.GetDefaultEmojiStatuses | account.GetRecentEmojiStatuses | account.ClearRecentEmojiStatuses | account.ReorderUsernames | account.ToggleUsername | account.GetDefaultProfilePhotoEmojis | account.GetDefaultGroupPhotoEmojis | account.GetAutoSaveSettings | account.SaveAutoSaveSettings | account.DeleteAutoSaveExceptions | account.InvalidateSignInCodes | account.UpdateColor | account.GetDefaultBackgroundEmojis | account.GetChannelDefaultEmojiStatuses | account.GetChannelRestrictedStatusEmojis | account.UpdateBusinessWorkHours | account.UpdateBusinessLocation | account.UpdateBusinessGreetingMessage | account.UpdateBusinessAwayMessage | account.UpdateConnectedBot | account.GetConnectedBots | account.GetBotBusinessConnection | account.UpdateBusinessIntro | account.ToggleConnectedBotPaused | account.DisablePeerConnectedBot | account.UpdateBirthday | account.CreateBusinessChatLink | account.EditBusinessChatLink | account.DeleteBusinessChatLink | account.GetBusinessChatLinks | account.ResolveBusinessChatLink | account.UpdatePersonalChannel | account.ToggleSponsoredMessages | account.GetReactionsNotifySettings | account.SetReactionsNotifySettings | users.GetUsers | users.GetFullUser | users.SetSecureValueErrors | users.GetIsPremiumRequiredToContact | contacts.GetContactIDs | contacts.GetStatuses | contacts.GetContacts | contacts.ImportContacts | contacts.DeleteContacts | contacts.DeleteByPhones | contacts.Block | contacts.Unblock | contacts.GetBlocked | contacts.Search | contacts.ResolveUsername | contacts.GetTopPeers | contacts.ResetTopPeerRating | contacts.ResetSaved | contacts.GetSaved | contacts.ToggleTopPeers | contacts.AddContact | contacts.AcceptContact | contacts.GetLocated | contacts.BlockFromReplies | contacts.ResolvePhone | contacts.ExportContactToken | contacts.ImportContactToken | contacts.EditCloseFriends | contacts.SetBlocked | contacts.GetBirthdays - | messages.GetMessages | messages.GetDialogs | messages.GetHistory | messages.Search | messages.ReadHistory | messages.DeleteHistory | messages.DeleteMessages | messages.ReceivedMessages | messages.SetTyping | messages.SendMessage | messages.SendMedia | messages.ForwardMessages | messages.ReportSpam | messages.GetPeerSettings | messages.Report | messages.GetChats | messages.GetFullChat | messages.EditChatTitle | messages.EditChatPhoto | messages.AddChatUser | messages.DeleteChatUser | messages.CreateChat | messages.GetDhConfig | messages.RequestEncryption | messages.AcceptEncryption | messages.DiscardEncryption | messages.SetEncryptedTyping | messages.ReadEncryptedHistory | messages.SendEncrypted | messages.SendEncryptedFile | messages.SendEncryptedService | messages.ReceivedQueue | messages.ReportEncryptedSpam | messages.ReadMessageContents | messages.GetStickers | messages.GetAllStickers | messages.GetWebPagePreview | messages.ExportChatInvite | messages.CheckChatInvite | messages.ImportChatInvite | messages.GetStickerSet | messages.InstallStickerSet | messages.UninstallStickerSet | messages.StartBot | messages.GetMessagesViews | messages.EditChatAdmin | messages.MigrateChat | messages.SearchGlobal | messages.ReorderStickerSets | messages.GetDocumentByHash | messages.GetSavedGifs | messages.SaveGif | messages.GetInlineBotResults | messages.SetInlineBotResults | messages.SendInlineBotResult | messages.GetMessageEditData | messages.EditMessage | messages.EditInlineBotMessage | messages.GetBotCallbackAnswer | messages.SetBotCallbackAnswer | messages.GetPeerDialogs | messages.SaveDraft | messages.GetAllDrafts | messages.GetFeaturedStickers | messages.ReadFeaturedStickers | messages.GetRecentStickers | messages.SaveRecentSticker | messages.ClearRecentStickers | messages.GetArchivedStickers | messages.GetMaskStickers | messages.GetAttachedStickers | messages.SetGameScore | messages.SetInlineGameScore | messages.GetGameHighScores | messages.GetInlineGameHighScores | messages.GetCommonChats | messages.GetWebPage | messages.ToggleDialogPin | messages.ReorderPinnedDialogs | messages.GetPinnedDialogs | messages.SetBotShippingResults | messages.SetBotPrecheckoutResults | messages.UploadMedia | messages.SendScreenshotNotification | messages.GetFavedStickers | messages.FaveSticker | messages.GetUnreadMentions | messages.ReadMentions | messages.GetRecentLocations | messages.SendMultiMedia | messages.UploadEncryptedFile | messages.SearchStickerSets | messages.GetSplitRanges | messages.MarkDialogUnread | messages.GetDialogUnreadMarks | messages.ClearAllDrafts | messages.UpdatePinnedMessage | messages.SendVote | messages.GetPollResults | messages.GetOnlines | messages.EditChatAbout | messages.EditChatDefaultBannedRights | messages.GetEmojiKeywords | messages.GetEmojiKeywordsDifference | messages.GetEmojiKeywordsLanguages | messages.GetEmojiURL | messages.GetSearchCounters | messages.RequestUrlAuth | messages.AcceptUrlAuth | messages.HidePeerSettingsBar | messages.GetScheduledHistory | messages.GetScheduledMessages | messages.SendScheduledMessages | messages.DeleteScheduledMessages | messages.GetPollVotes | messages.ToggleStickerSets | messages.GetDialogFilters | messages.GetSuggestedDialogFilters | messages.UpdateDialogFilter | messages.UpdateDialogFiltersOrder | messages.GetOldFeaturedStickers | messages.GetReplies | messages.GetDiscussionMessage | messages.ReadDiscussion | messages.UnpinAllMessages | messages.DeleteChat | messages.DeletePhoneCallHistory | messages.CheckHistoryImport | messages.InitHistoryImport | messages.UploadImportedMedia | messages.StartHistoryImport | messages.GetExportedChatInvites | messages.GetExportedChatInvite | messages.EditExportedChatInvite | messages.DeleteRevokedExportedChatInvites | messages.DeleteExportedChatInvite | messages.GetAdminsWithInvites | messages.GetChatInviteImporters | messages.SetHistoryTTL | messages.CheckHistoryImportPeer | messages.SetChatTheme | messages.GetMessageReadParticipants | messages.GetSearchResultsCalendar | messages.GetSearchResultsPositions | messages.HideChatJoinRequest | messages.HideAllChatJoinRequests | messages.ToggleNoForwards | messages.SaveDefaultSendAs | messages.SendReaction | messages.GetMessagesReactions | messages.GetMessageReactionsList | messages.SetChatAvailableReactions | messages.GetAvailableReactions | messages.SetDefaultReaction | messages.TranslateText | messages.GetUnreadReactions | messages.ReadReactions | messages.SearchSentMedia | messages.GetAttachMenuBots | messages.GetAttachMenuBot | messages.ToggleBotInAttachMenu | messages.RequestWebView | messages.ProlongWebView | messages.RequestSimpleWebView | messages.SendWebViewResultMessage | messages.SendWebViewData | messages.TranscribeAudio | messages.RateTranscribedAudio | messages.GetCustomEmojiDocuments | messages.GetEmojiStickers | messages.GetFeaturedEmojiStickers | messages.ReportReaction | messages.GetTopReactions | messages.GetRecentReactions | messages.ClearRecentReactions | messages.GetExtendedMedia | messages.SetDefaultHistoryTTL | messages.GetDefaultHistoryTTL | messages.SendBotRequestedPeer | messages.GetEmojiGroups | messages.GetEmojiStatusGroups | messages.GetEmojiProfilePhotoGroups | messages.SearchCustomEmoji | messages.TogglePeerTranslations | messages.GetBotApp | messages.RequestAppWebView | messages.SetChatWallPaper | messages.SearchEmojiStickerSets | messages.GetSavedDialogs | messages.GetSavedHistory | messages.DeleteSavedHistory | messages.GetPinnedSavedDialogs | messages.ToggleSavedDialogPin | messages.ReorderPinnedSavedDialogs | messages.GetSavedReactionTags | messages.UpdateSavedReactionTag | messages.GetDefaultTagReactions | messages.GetOutboxReadDate | messages.GetQuickReplies | messages.ReorderQuickReplies | messages.CheckQuickReplyShortcut | messages.EditQuickReplyShortcut | messages.DeleteQuickReplyShortcut | messages.GetQuickReplyMessages | messages.SendQuickReplyMessages | messages.DeleteQuickReplyMessages | messages.ToggleDialogFilterTags | messages.GetMyStickers + | messages.GetMessages | messages.GetDialogs | messages.GetHistory | messages.Search | messages.ReadHistory | messages.DeleteHistory | messages.DeleteMessages | messages.ReceivedMessages | messages.SetTyping | messages.SendMessage | messages.SendMedia | messages.ForwardMessages | messages.ReportSpam | messages.GetPeerSettings | messages.Report | messages.GetChats | messages.GetFullChat | messages.EditChatTitle | messages.EditChatPhoto | messages.AddChatUser | messages.DeleteChatUser | messages.CreateChat | messages.GetDhConfig | messages.RequestEncryption | messages.AcceptEncryption | messages.DiscardEncryption | messages.SetEncryptedTyping | messages.ReadEncryptedHistory | messages.SendEncrypted | messages.SendEncryptedFile | messages.SendEncryptedService | messages.ReceivedQueue | messages.ReportEncryptedSpam | messages.ReadMessageContents | messages.GetStickers | messages.GetAllStickers | messages.GetWebPagePreview | messages.ExportChatInvite | messages.CheckChatInvite | messages.ImportChatInvite | messages.GetStickerSet | messages.InstallStickerSet | messages.UninstallStickerSet | messages.StartBot | messages.GetMessagesViews | messages.EditChatAdmin | messages.MigrateChat | messages.SearchGlobal | messages.ReorderStickerSets | messages.GetDocumentByHash | messages.GetSavedGifs | messages.SaveGif | messages.GetInlineBotResults | messages.SetInlineBotResults | messages.SendInlineBotResult | messages.GetMessageEditData | messages.EditMessage | messages.EditInlineBotMessage | messages.GetBotCallbackAnswer | messages.SetBotCallbackAnswer | messages.GetPeerDialogs | messages.SaveDraft | messages.GetAllDrafts | messages.GetFeaturedStickers | messages.ReadFeaturedStickers | messages.GetRecentStickers | messages.SaveRecentSticker | messages.ClearRecentStickers | messages.GetArchivedStickers | messages.GetMaskStickers | messages.GetAttachedStickers | messages.SetGameScore | messages.SetInlineGameScore | messages.GetGameHighScores | messages.GetInlineGameHighScores | messages.GetCommonChats | messages.GetWebPage | messages.ToggleDialogPin | messages.ReorderPinnedDialogs | messages.GetPinnedDialogs | messages.SetBotShippingResults | messages.SetBotPrecheckoutResults | messages.UploadMedia | messages.SendScreenshotNotification | messages.GetFavedStickers | messages.FaveSticker | messages.GetUnreadMentions | messages.ReadMentions | messages.GetRecentLocations | messages.SendMultiMedia | messages.UploadEncryptedFile | messages.SearchStickerSets | messages.GetSplitRanges | messages.MarkDialogUnread | messages.GetDialogUnreadMarks | messages.ClearAllDrafts | messages.UpdatePinnedMessage | messages.SendVote | messages.GetPollResults | messages.GetOnlines | messages.EditChatAbout | messages.EditChatDefaultBannedRights | messages.GetEmojiKeywords | messages.GetEmojiKeywordsDifference | messages.GetEmojiKeywordsLanguages | messages.GetEmojiURL | messages.GetSearchCounters | messages.RequestUrlAuth | messages.AcceptUrlAuth | messages.HidePeerSettingsBar | messages.GetScheduledHistory | messages.GetScheduledMessages | messages.SendScheduledMessages | messages.DeleteScheduledMessages | messages.GetPollVotes | messages.ToggleStickerSets | messages.GetDialogFilters | messages.GetSuggestedDialogFilters | messages.UpdateDialogFilter | messages.UpdateDialogFiltersOrder | messages.GetOldFeaturedStickers | messages.GetReplies | messages.GetDiscussionMessage | messages.ReadDiscussion | messages.UnpinAllMessages | messages.DeleteChat | messages.DeletePhoneCallHistory | messages.CheckHistoryImport | messages.InitHistoryImport | messages.UploadImportedMedia | messages.StartHistoryImport | messages.GetExportedChatInvites | messages.GetExportedChatInvite | messages.EditExportedChatInvite | messages.DeleteRevokedExportedChatInvites | messages.DeleteExportedChatInvite | messages.GetAdminsWithInvites | messages.GetChatInviteImporters | messages.SetHistoryTTL | messages.CheckHistoryImportPeer | messages.SetChatTheme | messages.GetMessageReadParticipants | messages.GetSearchResultsCalendar | messages.GetSearchResultsPositions | messages.HideChatJoinRequest | messages.HideAllChatJoinRequests | messages.ToggleNoForwards | messages.SaveDefaultSendAs | messages.SendReaction | messages.GetMessagesReactions | messages.GetMessageReactionsList | messages.SetChatAvailableReactions | messages.GetAvailableReactions | messages.SetDefaultReaction | messages.TranslateText | messages.GetUnreadReactions | messages.ReadReactions | messages.SearchSentMedia | messages.GetAttachMenuBots | messages.GetAttachMenuBot | messages.ToggleBotInAttachMenu | messages.RequestWebView | messages.ProlongWebView | messages.RequestSimpleWebView | messages.SendWebViewResultMessage | messages.SendWebViewData | messages.TranscribeAudio | messages.RateTranscribedAudio | messages.GetCustomEmojiDocuments | messages.GetEmojiStickers | messages.GetFeaturedEmojiStickers | messages.ReportReaction | messages.GetTopReactions | messages.GetRecentReactions | messages.ClearRecentReactions | messages.GetExtendedMedia | messages.SetDefaultHistoryTTL | messages.GetDefaultHistoryTTL | messages.SendBotRequestedPeer | messages.GetEmojiGroups | messages.GetEmojiStatusGroups | messages.GetEmojiProfilePhotoGroups | messages.SearchCustomEmoji | messages.TogglePeerTranslations | messages.GetBotApp | messages.RequestAppWebView | messages.SetChatWallPaper | messages.SearchEmojiStickerSets | messages.GetSavedDialogs | messages.GetSavedHistory | messages.DeleteSavedHistory | messages.GetPinnedSavedDialogs | messages.ToggleSavedDialogPin | messages.ReorderPinnedSavedDialogs | messages.GetSavedReactionTags | messages.UpdateSavedReactionTag | messages.GetDefaultTagReactions | messages.GetOutboxReadDate | messages.GetQuickReplies | messages.ReorderQuickReplies | messages.CheckQuickReplyShortcut | messages.EditQuickReplyShortcut | messages.DeleteQuickReplyShortcut | messages.GetQuickReplyMessages | messages.SendQuickReplyMessages | messages.DeleteQuickReplyMessages | messages.ToggleDialogFilterTags | messages.GetMyStickers | messages.GetEmojiStickerGroups | updates.GetState | updates.GetDifference | updates.GetChannelDifference | photos.UpdateProfilePhoto | photos.UploadProfilePhoto | photos.DeletePhotos | photos.GetUserPhotos | photos.UploadContactProfilePhoto | upload.SaveFilePart | upload.GetFile | upload.SaveBigFilePart | upload.GetWebFile | upload.GetCdnFile | upload.ReuploadCdnFile | upload.GetCdnFileHashes | upload.GetFileHashes diff --git a/src/lib/gramjs/tl/apiTl.js b/src/lib/gramjs/tl/apiTl.js index 70e2b1088..7c0191233 100644 --- a/src/lib/gramjs/tl/apiTl.js +++ b/src/lib/gramjs/tl/apiTl.js @@ -631,6 +631,8 @@ auth.sentCodeTypeEmailCode#f450f59b flags:# apple_signin_allowed:flags.0?true go auth.sentCodeTypeSetUpEmailRequired#a5491dea flags:# apple_signin_allowed:flags.0?true google_signin_allowed:flags.1?true = auth.SentCodeType; auth.sentCodeTypeFragmentSms#d9565c39 url:string length:int = auth.SentCodeType; auth.sentCodeTypeFirebaseSms#e57b1432 flags:# nonce:flags.0?bytes receipt:flags.1?string push_timeout:flags.1?int length:int = auth.SentCodeType; +auth.sentCodeTypeSmsWord#a416ac81 flags:# beginning:flags.0?string = auth.SentCodeType; +auth.sentCodeTypeSmsPhrase#b37794af flags:# beginning:flags.0?string = auth.SentCodeType; messages.botCallbackAnswer#36585ea4 flags:# alert:flags.1?true has_url:flags.3?true native_ui:flags.4?true message:flags.0?string url:flags.2?string cache_time:int = messages.BotCallbackAnswer; messages.messageEditData#26b5dde6 flags:# caption:flags.0?true = messages.MessageEditData; inputBotInlineMessageID#890c3d89 dc_id:int id:long access_hash:long = InputBotInlineMessageID; @@ -915,8 +917,8 @@ page#98657f0d flags:# part:flags.0?true rtl:flags.1?true v2:flags.2?true url:str help.supportName#8c05f1c9 name:string = help.SupportName; help.userInfoEmpty#f3ae2eed = help.UserInfo; help.userInfo#1eb3758 message:string entities:Vector author:string date:int = help.UserInfo; -pollAnswer#6ca9c2e9 text:string option:bytes = PollAnswer; -poll#86e18161 id:long flags:# closed:flags.0?true public_voters:flags.1?true multiple_choice:flags.2?true quiz:flags.3?true question:string answers:Vector close_period:flags.4?int close_date:flags.5?int = Poll; +pollAnswer#ff16e2ca text:TextWithEntities option:bytes = PollAnswer; +poll#58747131 id:long flags:# closed:flags.0?true public_voters:flags.1?true multiple_choice:flags.2?true quiz:flags.3?true question:TextWithEntities answers:Vector close_period:flags.4?int close_date:flags.5?int = Poll; pollAnswerVoters#3b6ddad2 flags:# chosen:flags.0?true correct:flags.1?true option:bytes voters:int = PollAnswerVoters; pollResults#7adf2420 flags:# min:flags.0?true results:flags.1?Vector total_voters:flags.2?int recent_voters:flags.3?Vector solution:flags.4?string solution_entities:flags.4?Vector = PollResults; chatOnlines#f041e250 onlines:int = ChatOnlines; @@ -1139,6 +1141,8 @@ requestPeerTypeBroadcast#339bef6c flags:# creator:flags.0?true has_username:flag emojiListNotModified#481eadfa = EmojiList; emojiList#7a1e11d1 hash:long document_id:Vector = EmojiList; emojiGroup#7a9abda9 title:string icon_emoji_id:long emoticons:Vector = EmojiGroup; +emojiGroupGreeting#80d26cc7 title:string icon_emoji_id:long emoticons:Vector = EmojiGroup; +emojiGroupPremium#93bcf34 title:string icon_emoji_id:long = EmojiGroup; messages.emojiGroupsNotModified#6fb4ad87 = messages.EmojiGroups; messages.emojiGroups#881fb94b hash:int groups:Vector = messages.EmojiGroups; textWithEntities#751f3146 text:string entities:Vector = TextWithEntities; @@ -1279,7 +1283,7 @@ sponsoredMessageReportOption#430d3150 text:string option:bytes = SponsoredMessag channels.sponsoredMessageReportResultChooseOption#846f9e42 title:string options:Vector = channels.SponsoredMessageReportResult; channels.sponsoredMessageReportResultAdsHidden#3e3bcf2f = channels.SponsoredMessageReportResult; channels.sponsoredMessageReportResultReported#ad798849 = channels.SponsoredMessageReportResult; -stats.broadcastRevenueStats#d07b4bad top_hours_graph:StatsGraph revenue_graph:StatsGraph current_balance:long available_balance:long overall_revenue:long usd_rate:double = stats.BroadcastRevenueStats; +stats.broadcastRevenueStats#5407e297 top_hours_graph:StatsGraph revenue_graph:StatsGraph balances:BroadcastRevenueBalances usd_rate:double = stats.BroadcastRevenueStats; stats.broadcastRevenueWithdrawalUrl#ec659737 url:string = stats.BroadcastRevenueWithdrawalUrl; broadcastRevenueTransactionProceeds#557e2cc4 amount:long from_date:int to_date:int = BroadcastRevenueTransaction; broadcastRevenueTransactionWithdrawal#5a590978 flags:# pending:flags.0?true failed:flags.2?true amount:long date:int provider:string transaction_date:flags.1?int transaction_url:flags.1?string = BroadcastRevenueTransaction; @@ -1288,6 +1292,7 @@ stats.broadcastRevenueTransactions#87158466 count:int transactions:Vector author:string date:int = help.UserInfo; -pollAnswer#6ca9c2e9 text:string option:bytes = PollAnswer; +pollAnswer#ff16e2ca text:TextWithEntities option:bytes = PollAnswer; -poll#86e18161 id:long flags:# closed:flags.0?true public_voters:flags.1?true multiple_choice:flags.2?true quiz:flags.3?true question:string answers:Vector close_period:flags.4?int close_date:flags.5?int = Poll; +poll#58747131 id:long flags:# closed:flags.0?true public_voters:flags.1?true multiple_choice:flags.2?true quiz:flags.3?true question:TextWithEntities answers:Vector close_period:flags.4?int close_date:flags.5?int = Poll; pollAnswerVoters#3b6ddad2 flags:# chosen:flags.0?true correct:flags.1?true option:bytes voters:int = PollAnswerVoters; @@ -1517,6 +1519,8 @@ emojiListNotModified#481eadfa = EmojiList; emojiList#7a1e11d1 hash:long document_id:Vector = EmojiList; emojiGroup#7a9abda9 title:string icon_emoji_id:long emoticons:Vector = EmojiGroup; +emojiGroupGreeting#80d26cc7 title:string icon_emoji_id:long emoticons:Vector = EmojiGroup; +emojiGroupPremium#93bcf34 title:string icon_emoji_id:long = EmojiGroup; messages.emojiGroupsNotModified#6fb4ad87 = messages.EmojiGroups; messages.emojiGroups#881fb94b hash:int groups:Vector = messages.EmojiGroups; @@ -1760,7 +1764,7 @@ channels.sponsoredMessageReportResultChooseOption#846f9e42 title:string options: channels.sponsoredMessageReportResultAdsHidden#3e3bcf2f = channels.SponsoredMessageReportResult; channels.sponsoredMessageReportResultReported#ad798849 = channels.SponsoredMessageReportResult; -stats.broadcastRevenueStats#d07b4bad top_hours_graph:StatsGraph revenue_graph:StatsGraph current_balance:long available_balance:long overall_revenue:long usd_rate:double = stats.BroadcastRevenueStats; +stats.broadcastRevenueStats#5407e297 top_hours_graph:StatsGraph revenue_graph:StatsGraph balances:BroadcastRevenueBalances usd_rate:double = stats.BroadcastRevenueStats; stats.broadcastRevenueWithdrawalUrl#ec659737 url:string = stats.BroadcastRevenueWithdrawalUrl; @@ -1775,6 +1779,8 @@ reactionNotificationsFromAll#4b9e22a0 = ReactionNotificationsFrom; reactionsNotifySettings#56e34970 flags:# messages_notify_from:flags.0?ReactionNotificationsFrom stories_notify_from:flags.1?ReactionNotificationsFrom sound:NotificationSound show_previews:Bool = ReactionsNotifySettings; +broadcastRevenueBalances#8438f1c6 current_balance:long available_balance:long overall_revenue:long = BroadcastRevenueBalances; + ---functions--- invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X; @@ -1808,6 +1814,7 @@ auth.checkRecoveryPassword#d36bf79 code:string = Bool; auth.importWebTokenAuthorization#2db873a9 api_id:int api_hash:string web_auth_token:string = auth.Authorization; auth.requestFirebaseSms#89464b50 flags:# phone_number:string phone_code_hash:string safety_net_token:flags.0?string ios_push_secret:flags.1?string = Bool; auth.resetLoginEmail#7e960193 phone_number:string phone_code_hash:string = auth.SentCode; +auth.reportMissingCode#cb9deff6 phone_number:string phone_code_hash:string mnc:string = Bool; account.registerDevice#ec86017a flags:# no_muted:flags.0?true token_type:int token:string app_sandbox:Bool secret:bytes other_uids:Vector = Bool; account.unregisterDevice#6a0d3206 token_type:int token:string other_uids:Vector = Bool; @@ -2162,6 +2169,7 @@ messages.sendQuickReplyMessages#6c750de1 peer:InputPeer shortcut_id:int id:Vecto messages.deleteQuickReplyMessages#e105e910 shortcut_id:int id:Vector = Updates; messages.toggleDialogFilterTags#fd2dda49 enabled:Bool = Bool; messages.getMyStickers#d0b5e1fc offset_id:long limit:int = messages.MyStickers; +messages.getEmojiStickerGroups#1dd840f5 hash:int = messages.EmojiGroups; updates.getState#edd4882a = updates.State; updates.getDifference#19c2f763 flags:# pts:int pts_limit:flags.1?int pts_total_limit:flags.0?int date:int qts:int qts_limit:flags.2?int = updates.Difference; diff --git a/src/util/notifications.ts b/src/util/notifications.ts index 0ad503f94..e1b6ed1fb 100644 --- a/src/util/notifications.ts +++ b/src/util/notifications.ts @@ -13,7 +13,6 @@ import { getMessageAction, getMessageRecentReaction, getMessageSenderName, - getMessageSummaryText, getPrivateChatUserId, getUserFullName, isActionMessage, @@ -21,6 +20,7 @@ import { selectIsChatMuted, selectShouldShowMessagePreview, } from '../global/helpers'; +import { getMessageSummaryText } from '../global/helpers/messageSummary'; import { getMessageReplyInfo } from '../global/helpers/replies'; import { addNotifyExceptions, replaceSettings } from '../global/reducers'; import {