From 6e37c5b1632cad615dee1ad49b571e5923013c58 Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Fri, 17 May 2024 15:45:21 +0200 Subject: [PATCH] ClosableEmbeddedMessage Menu: Reply in Another Chat (#4504) --- src/api/types/messages.ts | 4 + src/assets/font-icons/remove-quote.svg | 1 + src/assets/font-icons/show-message.svg | 1 + .../common/embedded/EmbeddedMessage.scss | 4 +- .../common/embedded/EmbeddedMessage.tsx | 35 +++- .../main/ForwardRecipientPicker.tsx | 25 ++- .../composer/ComposerEmbeddedMessage.tsx | 183 ++++++++++++------ src/components/ui/MenuItem.tsx | 7 +- src/global/actions/api/messages.ts | 117 +++++++++-- src/global/actions/ui/messages.ts | 2 +- src/global/helpers/messageMedia.ts | 6 +- src/global/helpers/messageSummary.ts | 34 ++-- src/global/helpers/messages.ts | 12 +- src/global/selectors/messages.ts | 68 ++++--- src/global/types.ts | 6 +- src/hooks/useShowTransition.ts | 1 + src/styles/icons.scss | 162 ++++++++-------- src/styles/icons.woff | Bin 29940 -> 30220 bytes src/styles/icons.woff2 | Bin 25064 -> 25228 bytes src/types/icons/font.ts | 2 + 20 files changed, 451 insertions(+), 219 deletions(-) create mode 100644 src/assets/font-icons/remove-quote.svg create mode 100644 src/assets/font-icons/show-message.svg diff --git a/src/api/types/messages.ts b/src/api/types/messages.ts index 06ad3e672..a3d9237ff 100644 --- a/src/api/types/messages.ts +++ b/src/api/types/messages.ts @@ -409,6 +409,7 @@ export interface ApiInputMessageReplyInfo { replyToTopId?: number; replyToPeerId?: string; quoteText?: ApiFormattedText; + isShowingDelayNeeded?: boolean; } export interface ApiInputStoryReplyInfo { @@ -532,6 +533,9 @@ export type MediaContent = { isExpiredRoundVideo?: boolean; ttlSeconds?: number; }; +export type MediaContainer = { + content: MediaContent; +}; export interface ApiMessage { id: number; diff --git a/src/assets/font-icons/remove-quote.svg b/src/assets/font-icons/remove-quote.svg new file mode 100644 index 000000000..09c58ec29 --- /dev/null +++ b/src/assets/font-icons/remove-quote.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/show-message.svg b/src/assets/font-icons/show-message.svg new file mode 100644 index 000000000..57b1cb371 --- /dev/null +++ b/src/assets/font-icons/show-message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/common/embedded/EmbeddedMessage.scss b/src/components/common/embedded/EmbeddedMessage.scss index 97b6c1ba5..e81f8cd12 100644 --- a/src/components/common/embedded/EmbeddedMessage.scss +++ b/src/components/common/embedded/EmbeddedMessage.scss @@ -110,12 +110,12 @@ .message-title { display: flex; align-items: center; - flex-wrap: wrap; + flex-wrap: nowrap; flex: 1; column-gap: 0.25rem; } - .message-title, .embedded-sender { + .message-title, .embedded-sender, .embedded-sender-chat { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; diff --git a/src/components/common/embedded/EmbeddedMessage.tsx b/src/components/common/embedded/EmbeddedMessage.tsx index afbcbe2ef..9a6855026 100644 --- a/src/components/common/embedded/EmbeddedMessage.tsx +++ b/src/components/common/embedded/EmbeddedMessage.tsx @@ -3,13 +3,15 @@ import React, { useMemo, useRef } from '../../../lib/teact/teact'; import type { ApiChat, - ApiMessage, ApiPeer, ApiReplyInfo, + ApiMessage, ApiPeer, ApiReplyInfo, MediaContainer, } from '../../../api/types'; import type { ChatTranslatedMessages } from '../../../global/types'; import type { ObserveFn } from '../../../hooks/useIntersectionObserver'; import type { IconName } from '../../../types/icons'; +import { CONTENT_NOT_SUPPORTED } from '../../../config'; import { + getMediaContentTypeDescription, getMessageIsSpoiler, getMessageMediaHash, getMessageRoundVideo, @@ -18,6 +20,7 @@ import { isChatChannel, isChatGroup, isMessageTranslatable, + isUserId, } from '../../../global/helpers'; import buildClassName from '../../../util/buildClassName'; import freezeWhenClosed from '../../../util/hoc/freezeWhenClosed'; @@ -58,7 +61,7 @@ type OwnProps = { isOpen?: boolean; observeIntersectionForLoading?: ObserveFn; observeIntersectionForPlaying?: ObserveFn; - onClick: NoneToVoidFunction; + onClick: ((e: React.MouseEvent) => void); }; const NBSP = '\u00A0'; @@ -128,7 +131,7 @@ const EmbeddedMessage: FC = ({ } if (!message) { - return customText || NBSP; + return customText || renderMediaContentType(wrappedMedia) || NBSP; } if (isActionMessage(message)) { @@ -155,6 +158,23 @@ const EmbeddedMessage: FC = ({ ); } + function renderMediaContentType(media?: MediaContainer) { + if (!media || media.content.text) return NBSP; + const description = getMediaContentTypeDescription(lang, media.content); + if (!description || description === CONTENT_NOT_SUPPORTED) return NBSP; + return ( + + {renderText(description)} + + ); + } + + function checkShouldRenderSenderTitle() { + if (!senderChat) return true; + if (isUserId(senderChat?.id)) return true; + if (senderChat.id === sender?.id) return false; + return true; + } function renderSender() { if (title) { return renderText(title); @@ -175,18 +195,21 @@ const EmbeddedMessage: FC = ({ } } - const isChatSender = senderChat && senderChat.id === sender?.id; const isReplyToQuote = isInComposer && Boolean(replyInfo && 'quoteText' in replyInfo && replyInfo?.quoteText); return ( <> - {!isChatSender && ( + {checkShouldRenderSenderTitle() && ( {renderText(isReplyToQuote ? lang('ReplyToQuote', senderTitle) : senderTitle)} )} {icon && } - {icon && senderChatTitle && renderText(senderChatTitle)} + {icon && senderChatTitle && ( + + {renderText(senderChatTitle)} + + )} ); } diff --git a/src/components/main/ForwardRecipientPicker.tsx b/src/components/main/ForwardRecipientPicker.tsx index 8ba2200dc..9de575d0a 100644 --- a/src/components/main/ForwardRecipientPicker.tsx +++ b/src/components/main/ForwardRecipientPicker.tsx @@ -5,9 +5,16 @@ import React, { import { getActions, getGlobal, withGlobal } from '../../global'; import type { ThreadId } from '../../types'; +import { MAIN_THREAD_ID } from '../../api/types'; import { getChatTitle, getUserFirstOrLastName, isUserId } from '../../global/helpers'; -import { selectChat, selectTabState, selectUser } from '../../global/selectors'; +import { + selectChat, + selectCurrentChat, + selectDraft, + selectTabState, + selectUser, +} from '../../global/selectors'; import useFlag from '../../hooks/useFlag'; import useLang from '../../hooks/useLang'; @@ -23,6 +30,7 @@ interface StateProps { currentUserId?: string; isManyMessages?: boolean; isStory?: boolean; + isReplying?: boolean; } const ForwardRecipientPicker: FC = ({ @@ -30,8 +38,10 @@ const ForwardRecipientPicker: FC = ({ currentUserId, isManyMessages, isStory, + isReplying, }) => { const { + openChatOrTopicWithReplyInDraft, setForwardChatOrTopic, exitForwardMode, forwardToSavedMessages, @@ -84,9 +94,15 @@ const ForwardRecipientPicker: FC = ({ forwardToSavedMessages(); showNotification({ message }); } else { - setForwardChatOrTopic({ chatId: recipientId, topicId: Number(threadId) }); + const chatId = recipientId; + const topicId = threadId ? Number(threadId) : undefined; + if (isReplying) { + openChatOrTopicWithReplyInDraft({ chatId, topicId }); + } else { + setForwardChatOrTopic({ chatId, topicId }); + } } - }, [currentUserId, isManyMessages, isStory, lang]); + }, [currentUserId, isManyMessages, isStory, lang, isReplying]); const handleClose = useCallback(() => { exitForwardMode(); @@ -110,9 +126,12 @@ const ForwardRecipientPicker: FC = ({ export default memo(withGlobal((global): StateProps => { const { messageIds, storyId } = selectTabState(global).forwardMessages; + const currentChatId = selectCurrentChat(global)?.id; + const isReplying = currentChatId && selectDraft(global, currentChatId, MAIN_THREAD_ID)?.replyInfo; return { currentUserId: global.currentUserId, isManyMessages: (messageIds?.length || 0) > 1, isStory: Boolean(storyId), + isReplying: Boolean(isReplying), }; })(ForwardRecipientPicker)); diff --git a/src/components/middle/composer/ComposerEmbeddedMessage.tsx b/src/components/middle/composer/ComposerEmbeddedMessage.tsx index c361fc76b..3c4652570 100644 --- a/src/components/middle/composer/ComposerEmbeddedMessage.tsx +++ b/src/components/middle/composer/ComposerEmbeddedMessage.tsx @@ -4,11 +4,14 @@ import React, { } from '../../../lib/teact/teact'; import { getActions, withGlobal } from '../../../global'; -import type { ApiInputMessageReplyInfo, ApiMessage, ApiPeer } from '../../../api/types'; +import type { + ApiChat, ApiInputMessageReplyInfo, ApiMessage, ApiPeer, +} from '../../../api/types'; import { stripCustomEmoji } from '../../../global/helpers'; import { selectCanAnimateInterface, + selectChat, selectChatMessage, selectCurrentMessageList, selectDraft, @@ -56,6 +59,9 @@ type StateProps = { isCurrentUserPremium?: boolean; isContextMenuDisabled?: boolean; isReplyToDiscussion?: boolean; + isInChangingRecipientMode?: boolean; + isChangingChats?: boolean; + senderChat?: ApiChat; }; type OwnProps = { @@ -80,12 +86,16 @@ const ComposerEmbeddedMessage: FC = ({ isContextMenuDisabled, isReplyToDiscussion, onClear, + isInChangingRecipientMode, + isChangingChats, + senderChat, }) => { const { resetDraftReplyInfo, + updateDraftReplyInfo, setEditingId, focusMessage, - changeForwardRecipient, + changeRecipient, setForwardNoAuthors, setForwardNoCaptions, exitForwardMode, @@ -95,15 +105,17 @@ const ComposerEmbeddedMessage: FC = ({ const lang = useLang(); const isReplyToTopicStart = message?.content.action?.type === 'topicCreate'; + const isShowingReply = replyInfo && !shouldForceShowEditing; + const isReplyWithQuote = Boolean(replyInfo?.quoteText); const isForwarding = Boolean(forwardedMessagesCount); const isShown = Boolean( - ((replyInfo || editingId) && message) + ((replyInfo || editingId) && message && !isInChangingRecipientMode) || (sender && forwardedMessagesCount), ); const canAnimate = useAsyncRendering( [isShown, isForwarding], - isShown && isForwarding ? FORWARD_RENDERING_DELAY : undefined, + isShown && isChangingChats ? FORWARD_RENDERING_DELAY : undefined, ); const { @@ -115,6 +127,11 @@ const ComposerEmbeddedMessage: FC = ({ undefined, !shouldAnimate, ); + useEffect(() => { + if (canAnimate && replyInfo?.isShowingDelayNeeded) { + updateDraftReplyInfo({ isShowingDelayNeeded: false }); + } + }); const clearEmbedded = useLastCallback(() => { if (replyInfo && !shouldForceShowEditing) { @@ -129,24 +146,36 @@ const ComposerEmbeddedMessage: FC = ({ useEffect(() => (isShown ? captureEscKeyListener(clearEmbedded) : undefined), [isShown, clearEmbedded]); - const handleMessageClick = useLastCallback((): void => { - if (isForwarding) return; + const { + isContextMenuOpen, contextMenuPosition, handleContextMenu, + handleContextMenuClose, handleContextMenuHide, + } = useContextMenuHandlers(ref); + + const focusMessageFromDraft = () => { focusMessage({ chatId: message!.chatId, messageId: message!.id, noForumTopicPanel: true }); + }; + const handleMessageClick = useLastCallback((e: React.MouseEvent): void => { + handleContextMenu(e); }); const handleClearClick = useLastCallback((e: React.MouseEvent): void => { e.stopPropagation(); clearEmbedded(); + handleContextMenuHide(); }); - - const handleChangeRecipientClick = useLastCallback(() => { - changeForwardRecipient(); - }); - - const { - isContextMenuOpen, contextMenuPosition, handleContextMenu, - handleContextMenuClose, handleContextMenuHide, - } = useContextMenuHandlers(ref); + const buildAutoCloseMenuItemHandler = (action: NoneToVoidFunction) => { + return () => { + handleContextMenuClose(); + action(); + }; + }; + const handleForwardToAnotherChatClick = useLastCallback(buildAutoCloseMenuItemHandler(changeRecipient)); + const handleShowMessageClick = useLastCallback(buildAutoCloseMenuItemHandler(focusMessageFromDraft)); + const handleRemoveQuoteClick = useLastCallback(buildAutoCloseMenuItemHandler( + () => updateDraftReplyInfo({ quoteText: undefined }), + )); + const handleChangeReplyRecipientClick = useLastCallback(buildAutoCloseMenuItemHandler(changeRecipient)); + const handleDoNotReplyClick = useLastCallback(buildAutoCloseMenuItemHandler(clearEmbedded)); const getTriggerElement = useLastCallback(() => ref.current); const getRootElement = useLastCallback(() => ref.current!); @@ -162,8 +191,11 @@ const ComposerEmbeddedMessage: FC = ({ ); useEffect(() => { - if (!shouldRender) handleContextMenuClose(); - }, [handleContextMenuClose, shouldRender]); + if (!shouldRender) { + handleContextMenuClose(); + handleContextMenuHide(); + } + }, [handleContextMenuClose, handleContextMenuHide, shouldRender]); const className = buildClassName('ComposerEmbeddedMessage', transitionClassNames); const renderingSender = useCurrentOrPrev(sender, true); @@ -172,8 +204,6 @@ const ComposerEmbeddedMessage: FC = ({ getPeerColorClass(renderingSender), ); - const isShowingReply = replyInfo && !shouldForceShowEditing; - const leftIcon = useMemo(() => { if (isShowingReply) { return 'reply'; @@ -212,9 +242,9 @@ const ComposerEmbeddedMessage: FC = ({ } return ( -
+
-
+
{renderingLeftIcon && } {Boolean(replyInfo?.quoteText) && ( @@ -231,6 +261,7 @@ const ComposerEmbeddedMessage: FC = ({ title={(editingId && !isShowingReply) ? lang('EditMessage') : noAuthors ? lang('HiddenSendersNameDescription') : undefined} onClick={handleMessageClick} + senderChat={senderChat} /> - {isForwarding && !isContextMenuDisabled && ( + {(isShowingReply || isForwarding) && !isContextMenuDisabled && ( = ({ onClose={handleContextMenuClose} onCloseAnimationEnd={handleContextMenuHide} > - : undefined} - // eslint-disable-next-line react/jsx-no-bind - onClick={() => setForwardNoAuthors({ - noAuthors: false, - })} - > - {lang(forwardedMessagesCount > 1 ? 'ShowSenderNames' : 'ShowSendersName')} - - : undefined} - // eslint-disable-next-line react/jsx-no-bind - onClick={() => setForwardNoAuthors({ - noAuthors: true, - })} - > - {lang(forwardedMessagesCount > 1 ? 'HideSenderNames' : 'HideSendersName')} - - {forwardsHaveCaptions && ( + {isForwarding && ( <> - : undefined} + icon={!noAuthors ? 'message-succeeded' : undefined} + customIcon={noAuthors ? : undefined} // eslint-disable-next-line react/jsx-no-bind - onClick={() => setForwardNoCaptions({ - noCaptions: false, + onClick={() => setForwardNoAuthors({ + noAuthors: false, })} > - {lang(forwardedMessagesCount > 1 ? 'Conversation.ForwardOptions.ShowCaption' : 'ShowCaption')} + {lang(forwardedMessagesCount > 1 ? 'ShowSenderNames' : 'ShowSendersName')} : undefined} + icon={noAuthors ? 'message-succeeded' : undefined} + customIcon={!noAuthors ? : undefined} // eslint-disable-next-line react/jsx-no-bind - onClick={() => setForwardNoCaptions({ - noCaptions: true, + onClick={() => setForwardNoAuthors({ + noAuthors: true, })} > - {lang(forwardedMessagesCount > 1 ? 'Conversation.ForwardOptions.HideCaption' : 'HideCaption')} + {lang(forwardedMessagesCount > 1 ? 'HideSenderNames' : 'HideSendersName')} + + {forwardsHaveCaptions && ( + <> + + : undefined} + // eslint-disable-next-line react/jsx-no-bind + onClick={() => setForwardNoCaptions({ + noCaptions: false, + })} + > + {lang(forwardedMessagesCount > 1 ? 'Conversation.ForwardOptions.ShowCaption' : 'ShowCaption')} + + : undefined} + // eslint-disable-next-line react/jsx-no-bind + onClick={() => setForwardNoCaptions({ + noCaptions: true, + })} + > + {lang(forwardedMessagesCount > 1 ? 'Conversation.ForwardOptions.HideCaption' : 'HideCaption')} + + + )} + + + {lang('ForwardAnotherChat')} + + + )} + {isShowingReply && ( + <> + + {lang('Message.Context.Goto')} + + {isReplyWithQuote && ( + + {lang('RemoveQuote')} + + )} + + {lang('ReplyToAnotherChat')} + + + {lang('DoNotReply')} )} - - - {lang('ChangeRecipient')} - )}
@@ -319,7 +378,7 @@ export default memo(withGlobal( const { forwardMessages: { - fromChatId, toChatId, messageIds: forwardMessageIds, noAuthors, noCaptions, + fromChatId, toChatId, messageIds: forwardMessageIds, noAuthors, noCaptions, isModalShown, }, } = selectTabState(global); @@ -332,7 +391,10 @@ export default memo(withGlobal( const draft = selectDraft(global, chatId, threadId); const replyInfo = draft?.replyInfo; + const replyToPeerId = replyInfo?.replyToPeerId; + const senderChat = replyToPeerId ? selectChat(global, replyToPeerId) : undefined; + const isChangingChats = isForwarding || replyInfo?.isShowingDelayNeeded; let message: ApiMessage | undefined; if (replyInfo && !shouldForceShowEditing) { message = selectChatMessage(global, replyInfo.replyToPeerId || chatId, replyInfo.replyToMsgId); @@ -389,6 +451,9 @@ export default memo(withGlobal( isCurrentUserPremium: selectIsCurrentUserPremium(global), isContextMenuDisabled, isReplyToDiscussion, + isInChangingRecipientMode: isModalShown, + isChangingChats, + senderChat, }; }, )(ComposerEmbeddedMessage)); diff --git a/src/components/ui/MenuItem.tsx b/src/components/ui/MenuItem.tsx index ba238dd12..b2882f13a 100644 --- a/src/components/ui/MenuItem.tsx +++ b/src/components/ui/MenuItem.tsx @@ -52,13 +52,11 @@ const MenuItem: FC = (props) => { const lang = useLang(); const { isTouchScreen } = useAppLayout(); const handleClick = useLastCallback((e: React.MouseEvent) => { + e.stopPropagation(); if (disabled || !onClick) { - e.stopPropagation(); e.preventDefault(); - return; } - onClick(e, clickArg); }); @@ -67,13 +65,12 @@ const MenuItem: FC = (props) => { return; } + e.stopPropagation(); if (disabled || !onClick) { - e.stopPropagation(); e.preventDefault(); return; } - onClick(e, clickArg); }); const handleMouseDown = useLastCallback((e: React.SyntheticEvent) => { diff --git a/src/global/actions/api/messages.ts b/src/global/actions/api/messages.ts index 8beff59c2..031eca38e 100644 --- a/src/global/actions/api/messages.ts +++ b/src/global/actions/api/messages.ts @@ -13,6 +13,7 @@ import type { ApiSticker, ApiStory, ApiStorySkipped, + ApiUser, ApiVideo, } from '../../../api/types'; import type { MessageKey } from '../../../util/messageKey'; @@ -122,6 +123,7 @@ import { selectPeerStory, selectPinnedIds, selectRealLastReadId, + selectReplyCanBeSentToChat, selectScheduledMessage, selectSendAs, selectSponsoredMessage, @@ -1750,29 +1752,104 @@ addActionHandler('openUrl', (global, actions, payload): ActionReturnType => { } }); +async function checkIfVoiceMessagesAllowed( + global: T, + user: ApiUser, + chatId: string, +): Promise { + let fullInfo = selectUserFullInfo(global, chatId); + if (!fullInfo) { + const { accessHash } = user; + const result = await callApi('fetchFullUser', { id: chatId, accessHash }); + fullInfo = result?.fullInfo; + } + return Boolean(!fullInfo?.noVoiceMessages); +} + +function moveReplyToNewDraft( + global: T, + threadId: ThreadId, + replyInfo: ApiInputMessageReplyInfo, + toChatId: string, +) { + const currentDraft = selectDraft(global, toChatId, threadId); + + if (!replyInfo.replyToMsgId) return; + + const newDraft: ApiDraft = { + ...currentDraft, + replyInfo, + }; + + saveDraft({ + global, chatId: toChatId, threadId, draft: newDraft, isLocalOnly: true, noLocalTimeUpdate: true, + }); +} +addActionHandler('openChatOrTopicWithReplyInDraft', (global, actions, payload): ActionReturnType => { + const { chatId: toChatId, topicId, tabId = getCurrentTabId() } = payload; + + global = getGlobal(); + + if (!selectReplyCanBeSentToChat(global, toChatId, tabId)) { + actions.showNotification({ message: translate('Chat.SendNotAllowedText'), tabId }); + return; + } + + global = updateTabState(global, { + forwardMessages: { + ...selectTabState(global, tabId).forwardMessages, + isModalShown: false, + }, + }, tabId); + setGlobal(global); + + const currentChat = selectCurrentChat(global, tabId); + if (!currentChat) return; + + const threadId = topicId || MAIN_THREAD_ID; + const currentChatId = currentChat.id; + + const currentReplyInfo = selectDraft(global, currentChatId, threadId)?.replyInfo; + if (!currentReplyInfo) return; + if (!currentReplyInfo.replyToPeerId && toChatId === currentChat.id) return; + + const getPeerId = () => { + if (!currentReplyInfo?.replyToPeerId) return currentChatId; + return currentReplyInfo.replyToPeerId === toChatId ? undefined : currentReplyInfo.replyToPeerId; + }; + const currentThreadId = selectCurrentMessageList(global, tabId)?.threadId; + if (!currentThreadId) { + return; + } + const replyToPeerId = getPeerId(); + const newReply: ApiInputMessageReplyInfo = { + ...currentReplyInfo, + replyToPeerId, + type: 'message', + isShowingDelayNeeded: true, + }; + + moveReplyToNewDraft(global, threadId, newReply, toChatId); + actions.openThread({ chatId: toChatId, threadId, tabId }); + actions.closeMediaViewer({ tabId }); + actions.exitMessageSelectMode({ tabId }); + actions.clearDraft({ chatId: currentChatId, threadId: currentThreadId }); +}); + addActionHandler('setForwardChatOrTopic', async (global, actions, payload): Promise => { const { chatId, topicId, tabId = getCurrentTabId() } = payload; - let user = selectUser(global, chatId); - if (user && selectForwardsContainVoiceMessages(global, tabId)) { - let fullInfo = selectUserFullInfo(global, chatId); - if (!fullInfo) { - const { accessHash } = user; - const result = await callApi('fetchFullUser', { id: chatId, accessHash }); - global = getGlobal(); - user = result?.user; - fullInfo = result?.fullInfo; - } - - if (fullInfo!.noVoiceMessages) { - actions.showDialog({ - data: { - message: translate('VoiceMessagesRestrictedByPrivacy', getUserFullName(user)), - }, - tabId, - }); - return; - } + const user = selectUser(global, chatId); + const isSelectForwardsContainVoiceMessages = selectForwardsContainVoiceMessages(global, tabId); + if (isSelectForwardsContainVoiceMessages && user && !await checkIfVoiceMessagesAllowed(global, user, chatId)) { + actions.showDialog({ + data: { + message: translate('VoiceMessagesRestrictedByPrivacy', getUserFullName(user)), + }, + tabId, + }); + return; } + global = getGlobal(); if (!selectForwardsCanBeSentToChat(global, chatId, tabId)) { actions.showAllowedMessageTypesNotification({ chatId, tabId }); diff --git a/src/global/actions/ui/messages.ts b/src/global/actions/ui/messages.ts index cd9135ab2..1c3119e7f 100644 --- a/src/global/actions/ui/messages.ts +++ b/src/global/actions/ui/messages.ts @@ -515,7 +515,7 @@ addActionHandler('openForwardMenu', (global, actions, payload): ActionReturnType }, tabId); }); -addActionHandler('changeForwardRecipient', (global, actions, payload): ActionReturnType => { +addActionHandler('changeRecipient', (global, actions, payload): ActionReturnType => { const { tabId = getCurrentTabId() } = payload || {}; return updateTabState(global, { forwardMessages: { diff --git a/src/global/helpers/messageMedia.ts b/src/global/helpers/messageMedia.ts index 5ffccc21f..5719d6120 100644 --- a/src/global/helpers/messageMedia.ts +++ b/src/global/helpers/messageMedia.ts @@ -10,7 +10,7 @@ import type { ApiPhoto, ApiVideo, ApiWebDocument, - MediaContent, + MediaContainer, } from '../../api/types'; import { ApiMediaFormat } from '../../api/types'; @@ -25,10 +25,6 @@ import { import { getDocumentHasPreview } from '../../components/common/helpers/documentInfo'; import { getAttachmentType, matchLinkInMessageText } from './messages'; -type MediaContainer = { - content: MediaContent; -}; - type Target = 'micro' | 'pictogram' diff --git a/src/global/helpers/messageSummary.ts b/src/global/helpers/messageSummary.ts index 9b4c154c5..753605780 100644 --- a/src/global/helpers/messageSummary.ts +++ b/src/global/helpers/messageSummary.ts @@ -1,6 +1,6 @@ import type { TeactNode } from '../../lib/teact/teact'; -import type { ApiMessage } from '../../api/types'; +import type { ApiMessage, MediaContent } from '../../api/types'; import type { LangFn } from '../../hooks/useLang'; import { ApiMessageEntityTypes } from '../../api/types'; @@ -8,7 +8,7 @@ import { CONTENT_NOT_SUPPORTED } from '../../config'; import trimText from '../../util/trimText'; import { getGlobal } from '../index'; import { - getExpiredMessageDescription, getMessageText, getMessageTranscription, isExpiredMessage, + getExpiredMessageContentDescription, getMessageText, getMessageTranscription, isExpiredMessageContent, } from './messages'; import { getUserFirstOrLastName } from './users'; @@ -102,11 +102,23 @@ export function getMessageSummaryEmoji(message: ApiMessage) { return undefined; } +export function getMediaContentTypeDescription(lang: LangFn, content: MediaContent) { + return getSummaryDescription(lang, content); +} export function getMessageSummaryDescription( lang: LangFn, message: ApiMessage, truncatedText?: string | TeactNode, isExtended = false, +) { + return getSummaryDescription(lang, message.content, message, truncatedText, isExtended); +} +function getSummaryDescription( + lang: LangFn, + mediaContent: MediaContent, + message?: ApiMessage, + truncatedText?: string | TeactNode, + isExtended = false, ) { const { text, @@ -124,12 +136,12 @@ export function getMessageSummaryDescription( storyData, giveaway, giveawayResults, - } = message.content; + } = mediaContent; let hasUsedTruncatedText = false; let summary: string | TeactNode | undefined; - if (message.groupedId) { + if (message?.groupedId) { hasUsedTruncatedText = true; summary = truncatedText || lang('lng_in_dlg_album'); } @@ -149,7 +161,7 @@ export function getMessageSummaryDescription( } if (audio) { - summary = getMessageAudioCaption(message) || lang('AttachMusic'); + summary = getMessageAudioCaption(mediaContent) || lang('AttachMusic'); } if (voice) { @@ -203,7 +215,7 @@ export function getMessageSummaryDescription( } if (storyData) { - if (storyData.isMention) { + if (message && storyData.isMention) { // eslint-disable-next-line eslint-multitab-tt/no-immediate-global const global = getGlobal(); const firstName = getUserFirstOrLastName(global.users.byId[message.chatId]); @@ -211,12 +223,12 @@ export function getMessageSummaryDescription( ? lang('Chat.Service.StoryMentioned.You', firstName) : lang('Chat.Service.StoryMentioned', firstName); } else { - summary = lang('ForwardedStory'); + summary = message ? lang('ForwardedStory') : lang('Chat.ReplyStory'); } } - if (isExpiredMessage(message)) { - const expiredMessageText = getExpiredMessageDescription(lang, message); + if (isExpiredMessageContent(mediaContent)) { + const expiredMessageText = getExpiredMessageContentDescription(lang, mediaContent); if (expiredMessageText) { summary = expiredMessageText; } @@ -232,11 +244,11 @@ export function generateBrailleSpoiler(length: number) { .join(''); } -function getMessageAudioCaption(message: ApiMessage) { +function getMessageAudioCaption(mediaContent: MediaContent) { const { audio, text, - } = message.content; + } = mediaContent; return (audio && [audio.title, audio.performer].filter(Boolean) .join(' — ')) || (text?.text); diff --git a/src/global/helpers/messages.ts b/src/global/helpers/messages.ts index 81fc329e2..4cfa252ae 100644 --- a/src/global/helpers/messages.ts +++ b/src/global/helpers/messages.ts @@ -1,6 +1,7 @@ import type { ApiAttachment, ApiChat, ApiMessage, ApiMessageEntityTextUrl, ApiPeer, ApiStory, ApiUser, } from '../../api/types'; +import type { MediaContent } from '../../api/types/messages'; import type { LangFn } from '../../hooks/useLang'; import { ApiMessageEntityTypes } from '../../api/types'; @@ -320,7 +321,10 @@ export function extractMessageText(message: ApiMessage | ApiStory, inChatList = } export function getExpiredMessageDescription(langFn: LangFn, message: ApiMessage): string | undefined { - const { isExpiredVoice, isExpiredRoundVideo } = message.content; + return getExpiredMessageContentDescription(langFn, message.content); +} +export function getExpiredMessageContentDescription(langFn: LangFn, mediaContent: MediaContent): string | undefined { + const { isExpiredVoice, isExpiredRoundVideo } = mediaContent; if (isExpiredVoice) { return langFn('Message.VoiceMessageExpired'); } else if (isExpiredRoundVideo) { @@ -330,7 +334,11 @@ export function getExpiredMessageDescription(langFn: LangFn, message: ApiMessage } export function isExpiredMessage(message: ApiMessage) { - const { isExpiredVoice, isExpiredRoundVideo } = message.content ?? {}; + return isExpiredMessageContent(message.content); +} + +export function isExpiredMessageContent(content: MediaContent) { + const { isExpiredVoice, isExpiredRoundVideo } = content ?? {}; return Boolean(isExpiredVoice || isExpiredRoundVideo); } diff --git a/src/global/selectors/messages.ts b/src/global/selectors/messages.ts index 2050640e5..fdd22e4ee 100644 --- a/src/global/selectors/messages.ts +++ b/src/global/selectors/messages.ts @@ -9,6 +9,7 @@ import type { ApiStickerSetInfo, } from '../../api/types'; import type { ThreadId } from '../../types'; +import type { IAllowedAttachmentOptions } from '../helpers'; import type { ChatTranslatedMessages, GlobalState, MessageListType, TabArgs, TabThread, Thread, @@ -47,6 +48,7 @@ import { isChatGroup, isChatSuperGroup, isCommonBoxChat, + isExpiredMessage, isForwardedMessage, isMessageDocumentSticker, isMessageFailed, @@ -1336,7 +1338,7 @@ export function selectForwardsContainVoiceMessages( const chatMessages = selectChatMessages(global, fromChatId!); return messageIds.some((messageId) => { const message = chatMessages[messageId]; - return Boolean(message.content.voice) || message.content.video?.isRound; + return Boolean(message.content.voice) || Boolean(message.content.video?.isRound); }); } @@ -1358,7 +1360,22 @@ export function selectRequestedMessageTranslationLanguage const requestedInChat = selectTabState(global, tabId).requestedTranslations.byChatId[chatId]; return requestedInChat?.toLanguage || requestedInChat?.manualMessages?.[messageId]; } +export function selectReplyCanBeSentToChat( + global: T, + toChatId: string, + ...[tabId = getCurrentTabId()]: TabArgs +) { + const currentChat = selectCurrentChat(global, tabId); + if (!currentChat) return false; + const replyInfo = selectDraft(global, currentChat.id, MAIN_THREAD_ID)?.replyInfo; + if (!replyInfo || !replyInfo.replyToMsgId) return false; + const fromChatId = replyInfo?.replyToPeerId ?? currentChat.id; + if (toChatId === fromChatId) return true; + const chatMessages = selectChatMessages(global, fromChatId!); + const message = chatMessages[replyInfo.replyToMsgId]; + return !isExpiredMessage(message); +} export function selectForwardsCanBeSentToChat( global: T, toChatId: string, @@ -1374,33 +1391,30 @@ export function selectForwardsCanBeSentToChat( const chatFullInfo = selectChatFullInfo(global, toChatId); const chatMessages = selectChatMessages(global, fromChatId!); - const { - canSendVoices, canSendRoundVideos, canSendStickers, canSendDocuments, canSendAudios, canSendVideos, - canSendPhotos, canSendGifs, canSendPlainText, - } = getAllowedAttachmentOptions(chat, chatFullInfo); - return !messageIds!.some((messageId) => { - const message = chatMessages[messageId]; - const isVoice = message.content.voice; - const isRoundVideo = message.content.video?.isRound; - const isPhoto = message.content.photo; - const isGif = message.content.video?.isGif; - const isVideo = message.content.video && !isRoundVideo && !isGif; - const isAudio = message.content.audio; - const isDocument = message.content.document; - const isSticker = message.content.sticker; - const isPlainText = message.content.text - && !isVoice && !isRoundVideo && !isSticker && !isDocument && !isAudio && !isVideo && !isPhoto && !isGif; + const options = getAllowedAttachmentOptions(chat, chatFullInfo); + return !messageIds!.some((messageId) => сheckMessageSendingDenied(chatMessages[messageId], options)); +} +function сheckMessageSendingDenied(message: ApiMessage, options: IAllowedAttachmentOptions) { + const isVoice = message.content.voice; + const isRoundVideo = message.content.video?.isRound; + const isPhoto = message.content.photo; + const isGif = message.content.video?.isGif; + const isVideo = message.content.video && !isRoundVideo && !isGif; + const isAudio = message.content.audio; + const isDocument = message.content.document; + const isSticker = message.content.sticker; + const isPlainText = message.content.text + && !isVoice && !isRoundVideo && !isSticker && !isDocument && !isAudio && !isVideo && !isPhoto && !isGif; - return (isVoice && !canSendVoices) - || (isRoundVideo && !canSendRoundVideos) - || (isSticker && !canSendStickers) - || (isDocument && !canSendDocuments) - || (isAudio && !canSendAudios) - || (isVideo && !canSendVideos) - || (isPhoto && !canSendPhotos) - || (isGif && !canSendGifs) - || (isPlainText && !canSendPlainText); - }); + return (isVoice && !options.canSendVoices) + || (isRoundVideo && !options.canSendRoundVideos) + || (isSticker && !options.canSendStickers) + || (isDocument && !options.canSendDocuments) + || (isAudio && !options.canSendAudios) + || (isVideo && !options.canSendVideos) + || (isPhoto && !options.canSendPhotos) + || (isGif && !options.canSendGifs) + || (isPlainText && !options.canSendPlainText); } export function selectCanTranslateMessage( diff --git a/src/global/types.ts b/src/global/types.ts index c3dba2a9a..6f7fb64b9 100644 --- a/src/global/types.ts +++ b/src/global/types.ts @@ -2540,6 +2540,10 @@ export interface ActionPayloads { chatId: string; topicId?: number; } & WithTabId; + openChatOrTopicWithReplyInDraft: { + chatId: string; + topicId?: number; + } & WithTabId; forwardMessages: { isSilent?: boolean; scheduledAt?: number; @@ -2551,7 +2555,7 @@ export interface ActionPayloads { noCaptions: boolean; } & WithTabId; exitForwardMode: WithTabId | undefined; - changeForwardRecipient: WithTabId | undefined; + changeRecipient: WithTabId | undefined; forwardToSavedMessages: WithTabId | undefined; forwardStory: { toChatId: string; diff --git a/src/hooks/useShowTransition.ts b/src/hooks/useShowTransition.ts index 811eb9745..4916912d5 100644 --- a/src/hooks/useShowTransition.ts +++ b/src/hooks/useShowTransition.ts @@ -24,6 +24,7 @@ const useShowTransition = ( if (closeTimeoutRef.current) { window.clearTimeout(closeTimeoutRef.current); + closeTimeoutRef.current = undefined; } } else { diff --git a/src/styles/icons.scss b/src/styles/icons.scss index e809895bf..e72ec83b3 100644 --- a/src/styles/icons.scss +++ b/src/styles/icons.scss @@ -187,83 +187,85 @@ $icons-map: ( "readchats": "\f19c", "recent": "\f19d", "reload": "\f19e", - "remove": "\f19f", - "reopen-topic": "\f1a0", - "replace": "\f1a1", - "replies": "\f1a2", - "reply-filled": "\f1a3", - "reply": "\f1a4", - "revenue-split": "\f1a5", - "revote": "\f1a6", - "save-story": "\f1a7", - "saved-messages": "\f1a8", - "schedule": "\f1a9", - "search": "\f1aa", - "select": "\f1ab", - "send-outline": "\f1ac", - "send": "\f1ad", - "settings-filled": "\f1ae", - "settings": "\f1af", - "share-filled": "\f1b0", - "share-screen-outlined": "\f1b1", - "share-screen-stop": "\f1b2", - "share-screen": "\f1b3", - "sidebar": "\f1b4", - "skip-next": "\f1b5", - "skip-previous": "\f1b6", - "smallscreen": "\f1b7", - "smile": "\f1b8", - "sort": "\f1b9", - "speaker-muted-story": "\f1ba", - "speaker-outline": "\f1bb", - "speaker-story": "\f1bc", - "speaker": "\f1bd", - "spoiler-disable": "\f1be", - "spoiler": "\f1bf", - "sport": "\f1c0", - "stats": "\f1c1", - "stealth-future": "\f1c2", - "stealth-past": "\f1c3", - "stickers": "\f1c4", - "stop-raising-hand": "\f1c5", - "stop": "\f1c6", - "story-caption": "\f1c7", - "story-expired": "\f1c8", - "story-priority": "\f1c9", - "story-reply": "\f1ca", - "strikethrough": "\f1cb", - "tag-add": "\f1cc", - "tag-crossed": "\f1cd", - "tag-filter": "\f1ce", - "tag-name": "\f1cf", - "tag": "\f1d0", - "timer": "\f1d1", - "transcribe": "\f1d2", - "truck": "\f1d3", - "unarchive": "\f1d4", - "underlined": "\f1d5", - "unlock-badge": "\f1d6", - "unlock": "\f1d7", - "unmute": "\f1d8", - "unpin": "\f1d9", - "unread": "\f1da", - "up": "\f1db", - "user-filled": "\f1dc", - "user-online": "\f1dd", - "user": "\f1de", - "video-outlined": "\f1df", - "video-stop": "\f1e0", - "video": "\f1e1", - "view-once": "\f1e2", - "voice-chat": "\f1e3", - "volume-1": "\f1e4", - "volume-2": "\f1e5", - "volume-3": "\f1e6", - "web": "\f1e7", - "webapp": "\f1e8", - "word-wrap": "\f1e9", - "zoom-in": "\f1ea", - "zoom-out": "\f1eb", + "remove-quote": "\f19f", + "remove": "\f1a0", + "reopen-topic": "\f1a1", + "replace": "\f1a2", + "replies": "\f1a3", + "reply-filled": "\f1a4", + "reply": "\f1a5", + "revenue-split": "\f1a6", + "revote": "\f1a7", + "save-story": "\f1a8", + "saved-messages": "\f1a9", + "schedule": "\f1aa", + "search": "\f1ab", + "select": "\f1ac", + "send-outline": "\f1ad", + "send": "\f1ae", + "settings-filled": "\f1af", + "settings": "\f1b0", + "share-filled": "\f1b1", + "share-screen-outlined": "\f1b2", + "share-screen-stop": "\f1b3", + "share-screen": "\f1b4", + "show-message": "\f1b5", + "sidebar": "\f1b6", + "skip-next": "\f1b7", + "skip-previous": "\f1b8", + "smallscreen": "\f1b9", + "smile": "\f1ba", + "sort": "\f1bb", + "speaker-muted-story": "\f1bc", + "speaker-outline": "\f1bd", + "speaker-story": "\f1be", + "speaker": "\f1bf", + "spoiler-disable": "\f1c0", + "spoiler": "\f1c1", + "sport": "\f1c2", + "stats": "\f1c3", + "stealth-future": "\f1c4", + "stealth-past": "\f1c5", + "stickers": "\f1c6", + "stop-raising-hand": "\f1c7", + "stop": "\f1c8", + "story-caption": "\f1c9", + "story-expired": "\f1ca", + "story-priority": "\f1cb", + "story-reply": "\f1cc", + "strikethrough": "\f1cd", + "tag-add": "\f1ce", + "tag-crossed": "\f1cf", + "tag-filter": "\f1d0", + "tag-name": "\f1d1", + "tag": "\f1d2", + "timer": "\f1d3", + "transcribe": "\f1d4", + "truck": "\f1d5", + "unarchive": "\f1d6", + "underlined": "\f1d7", + "unlock-badge": "\f1d8", + "unlock": "\f1d9", + "unmute": "\f1da", + "unpin": "\f1db", + "unread": "\f1dc", + "up": "\f1dd", + "user-filled": "\f1de", + "user-online": "\f1df", + "user": "\f1e0", + "video-outlined": "\f1e1", + "video-stop": "\f1e2", + "video": "\f1e3", + "view-once": "\f1e4", + "voice-chat": "\f1e5", + "volume-1": "\f1e6", + "volume-2": "\f1e7", + "volume-3": "\f1e8", + "web": "\f1e9", + "webapp": "\f1ea", + "word-wrap": "\f1eb", + "zoom-in": "\f1ec", + "zoom-out": "\f1ed", ); .icon-active-sessions::before { @@ -740,6 +742,9 @@ $icons-map: ( .icon-reload::before { content: map.get($icons-map, "reload"); } +.icon-remove-quote::before { + content: map.get($icons-map, "remove-quote"); +} .icon-remove::before { content: map.get($icons-map, "remove"); } @@ -803,6 +808,9 @@ $icons-map: ( .icon-share-screen::before { content: map.get($icons-map, "share-screen"); } +.icon-show-message::before { + content: map.get($icons-map, "show-message"); +} .icon-sidebar::before { content: map.get($icons-map, "sidebar"); } diff --git a/src/styles/icons.woff b/src/styles/icons.woff index f944e4d083893bba9be67e500e9f3dfec8c40c8f..07826423a7d709c889c02e143a35ef0b1f62c17c 100644 GIT binary patch delta 28928 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 delta 28608 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

u74P#lR*N;uxI~JP;G-&xp^I@J3w{f$AIci7? zbzDsGrQfd<1z__iJH;`gXxxN(OkgIPF|1nu+A0ADwtr@c=ZwEy5ks?lBERP;YQy6B zZn%Gs37fxnaa_g>C2#&7^kZiqVubE7s1My(oG9xP1xEO5{hP;rQRh1Nz*`um+Ia@r zu*(4MT>Zqw+(o_Ns`fdU1x=)e>x_&>{YZzk&ghOhjZS{Xv#B2fR~+ji|N93VT>l)C zpq!-i`#4JgwL*JFAAsD2FZ?j`kOV--+TwWy9JPV8fn%m=q#s{|^~TXoNP&=I7KXQG zfYnM+pvK^i?=F)&I4pmAFnN7}>7CT88O>Hybb~8=E!ta^CIc zN4R-?92`Ndp~*)d_R zWZAZ6^d) z3shF;eZB$hz!iTW2Y`#(CjKguO6RUD+;k^Xm19C)DlzTfKrgg|X^z=;fhqQr?0E@2 zz}xE}_5?00EQwB+FQYeQKWVRAl9bej>#weT##Y=72xBQF;R9~8ACW+y710rDr!%f4 z5ePgAy)j=#Z_Qq=c0W*#$4NKvf1wu0D5;HIH#=xmk1z{8?81-hFM;FrtV5IUIURpX zRM-yRm9{N+W%wTD!RXk+dzqp?TQ#RdNLH;;V7qw46|Mb+;Fr-4r^N&N4v;unjIE(r z%tjUVZMIv|w^XUZTdI@*VyWd!0@+)#m!Mu}(|X8yqxFpSevFGA52lk@u;HX|TVM9Z zm?6Wx>D=!h&5`@Zl9C;BY8np^x-5Tu57O&7B4p@`>4I=xejt{P^w0~2-50|YiqPqW zb6*1SW4q`hD;!mRO^jI#(4khJknwBE%AD91{JWr~?7L8&ob5SyaD~Dp7~8% zme8jLrn8D4Bl<+VHGA51e-G9CO3F>HjRsxZS7I3tDJ$08Kb3`d!$IK$o=$(~yC%ox z0Hbdy{V*j%D&XsnI0taWV@d}^lKTgY!%0quScLu{TxoG$fhz-4JruOdnEH|GAB8Pc0i*<=H?y1$bCVEDXP{)E%D@6>B zUXehN(b|mOCDR-+7!Vz~Gt+-}ZWEos2A1aQ`{#mAN}3?#idS&+$Xi@-E0>qzQtn4Q z2~Iy+4o@_O&9wf`6*qAH&B$eW=`&I`QKEhYH;=sKXCy!j-jCZ(&a--%Jj%SjN*ax% zuKFi)%>Fai6_As}vmVqI6y(#|j#OmcMwgNOtdOw|>3)$cequ5<@0)+4nXXi)=0+zX z^BmL)(8oa-0O9~#K{J(vE1QczGOAx*Ae9OokY=eZn4}Vf*+_DSpuaGH#ftALA9y(k zi?Ivmm9RaSF>R;ht)(TMG(L!hl!3Dnu8eEVy7ZH1NA4#!>VfzFubM_#v9W$0cDWo-X$z~$qQ>BPm&uj z=O_HXafAi$V8Yb%>t6>tbka%y8-jE>)$u5pvq_IMdWKK-bIhhT(%}^Qb6BK31hu)K z&|MZ;f(~hyysSw_|9xRb_yG5R=4mO;)>es5+k|6n%sYQ)vvv-{?Zo;23-7~(| z9W{X6-+1~lp}x|uHPYx2v_s$x7;acA0riSZ+A7oy%=HyI?&Dj~F+QtJBieBdH`-t7 z6{8}Tb7eX1S=Pedq_pMk2Gko?K-f!X2AsvOET!fGcBZxd#*fSBr>9y5ms&kN=wEmV zJ3F zdDm^j9mI}#q)yoOmK};%UG!5B-a=rjAi&jtvxab(0@Yf?gkrtx)+vzkA3!g24fDoB zAnC?mSereyD(X9J6wFguR+)|7zqu^S5PB$&?VxTIr zlVyJ$Ss8xk-LMp6*@W@CQRh?YU7Y0{j&-78IEdF~kPuSPDzj~i?x3)UE!h&g8p($Z)9bFYEBoKpq8y+L!Bg4 zzntZprC35j)+?p1$$AKQn*R3m(y-iKH1RS8>nb6BL=gQCBCC%|G!1@j~F zB=KCh0*$xr=X8;aSma@;ZOxwz;?QP^orl5=$(p`C0AVhy+Y~T@KW214t;q-~kc+njVHERB#V{;}-Mno@#}Q5Q z)AW$+m^2yV;lcO-da$1wzq%p>FrpZel0W@$s6aU2R8&DwYuf zfQifTl==deKnDsF^5+C@$z<4siQn8nsm^8_O}M?zNYxg32iAiKr>sf%YiU@)QY|t1CrgOK_^Q1je6e|k`yBIw9Bv9R*x(rtN|D%hKf`FYwJz{F z!N4$nv?&5U6l4{;PRM_4w|Ok5UkB|qSLXD~k0Xy%0e3Hm(51&uET9};r1=Y6bxyf@ z^GYjy5=+2FUwslc2U~a*H~905e2p0Ax(#yJJ=S+yAGChdyva!m=O(6Df~2Fv8`@-c zbOs|QQDl=TzUxWP-$NaMRHOC9P`F<#R&YI zEy;Q)U03^q13WroV`>k7n@C?_en)whGtZR)kzObqO7=m7qdxv2m3ed4^xx!r`*_(X{t7CRtfG8Dy#_<{(iJsQ-{su?f*mqv`tr*Y}0ptlJie; z*Co!=%w)&4Ff?bYZUNZI|w;!ry2d8|0`CzDXuoef)ApUfj!iJXn`?NU;1rrM>_eZX83JdxT1$>iu>^!P%%$z=G%uDSxawmQ#%84A=!Bw z-zo^>T4(BJhA$3(8%bIs_yUtt@}3@u)~xSDyan@*`c$eI7%9+CqRyZ>?+l)Rp=X=3b>AF|?sX`heSRvmQqs@@Q{A-@`#fgX5lg z=fMci0$Dl(E2_}&C}ZF?FPJc{9*0CbA7aMLSs>GN48mD|)=y_?A-{;20+7I+AkOhF zq6y%8`Hv7>Pp=cMcpY>hqcHEwp1)EN&{v|e;(I0OF!sH4C5v5rncd@$ndmXwjkA^C z;h02-^9SK!E3gI`&0hzPwUwl+l&(UD!PC-CBkqQ!x}#sqQ!j`q;B&ERY zVlt~zuXOd9fe-&K`1p>$hm8epq08GKj+JWbn$abHz*?Mn989LDz`xd67PtHDxa!M# z)xpfHwcamYb>_F@cDdY+E0f)-Z~HaB8iZ`EcCC}v!cMBJq0YpL(`lB9*#wJB=Mi5< zw$i?l`4xt^$^Mry0Xa~E(EWfLHMqP%(}3{_j^0d-3kRm1ba{1*nSe+m+17=& z9bjmGpJ;NRDJQk75&sQ%*mFf@j1}!hk&pQmIV!iliC1iErWDuk^Lmc2LXC8o`hmii zXkFXK6^PhvJ37hUj&kl;es?9-WrA6cL)t^T5=v2v@Fb)77!P6Xr3t>vg&xdbgGf4> zISkS~N^(tMZ!px9BtcSM0XDKyPRf`9Fs)vHZfZ8R-`wn{_=W?50{jiQX#`2LpF`2| z%I5Y7oo}624i@z373&vuZqh5#gMVdCpQZRz@jPPMb=)U)@C~zTE^(=AyPzK3&Dh;k zi0k>CJ}?3lIRcvV6vf}2y^8^P+CKE_ZPruP+po^bfle5S$z8F?W{GAu+1n``c5-}w z`@)sE+V{1XyWd%|8Jk2G#akMu_`-)*w3EW!dixI2L3bQaiWTHm-6$n4cQox@;m#K> zT)4DU_%nF5pzLrJ-%+`^^~{9}muCfWo01h|4ql_kkdZ_!*YJrh@Q4d9FPA-bjdk^X z^&)buc41+6!JP1$fbEW~_gUYII1>baG&VRAz%Pvkzj$E1CU3M6Q9NoANoNJ}*)r=z*3bJ-z#8U8W>=6aUn8y1foAc62ldMD7%0!WFm zl2`LEzEXzhLYqXsjLK~W&}w|o(?GeTqe@QTYRG5D_%0jif$#^iF)RW%S#8*VI)cva zpQyQxkTUE&PbfJpm~HdZm^BDQpO|e8Vw8kQfN^*T>FjnaY!IhvL2Qe7ul;F|i99EW z^F}olTmW~9({4b8>x2X(Dv1t{wUWk@=}MUbgS01$^&VP(t8Kjp=A|)-afCZ#UjK7Q z#uJ!I9|N?&p5Xim1~}qE3mPncIl1X3{_n9m>{0IV??NG;Z_sVbh$Gl7ch2+1)d>eI zcOEk_qBMxH4j4X^8~#2X!4d2pjEf9cn9?WL8blnQREI9N$Z-0D!06>glOmAc<73Dw zCfOlmyHl1Duq|_2odZHJ`~(JrpKMfJws}sdhwsDbEAK;@8aVr%Fr6KLsH@6YJp_2n zDa*#~E^iAMhz9Gz;MJ=qIbBt9_1+7Xqua1XR`vVoHi4hqZoS%it@T#xdvqR=LP*de zLq5?{O6oKlT9VcwCtCPWS@AY4lcr-B(nM!!(f$T0dhU>E;f<#qD|2J@GP#%4(*EEJ z)Kh^k8BQ-(%3Gz6+LQo)9e7wnDg^x)sVErrRxsi)kRFE)g6a6?{*ArfjeS3kgT_|1 zy0t3BbAmVle@?g_55$|e6No28Ns60r@3e5fCILMu7I-idDfK!4u7UtA#qhM-uc`-^ zAYc0)h2Q4C&(_b}aX93p?EkS>?*0L9Z%?;7k$8>=F8pfX+%4dL_hA1`BDjs;1SjA} z17~g%JYnskXJZA)@%%*sNS6=ELZNIJ`rPWK-Bho9J>cV?#R0`_4qve;PI!Z`28K%8BD7 zWk;u0`ew4}71AkCAdh`V;_1Y#QQs=~ z{4V473VZ&4z6Hz`*E^1w5HPjrD4XUPI!vQaAw4S1UaC<#tgcr{zFuwRXE7i8**L6r zUz)w7gOplt)i0(Y@mWlNel~Am==t$n?KNvd|02cY%GwsW95pn{*lFScrh^&mJszIa z)ak`DtO2Z0ez`L%bIeod9k`y)=U9^t=Zm>=f?!^MHmrqC#x*#k$P6{U*w!zLoeuM4 zekxVddzs_YGU09@|0P<^{-q3{JImB}!V<;&4&oMC`rj@S;yHIKjD&oOc|N`a47ioL z+wsVgcM#&jfsOA%zvGPsZwBIq@65oAF~Berl>RX0p>UCq-3qL*A7SiAV6{|;EB~{E z4@e<@4+@x`zAYXE8UHyJvgfG1XdAvq_mcI)(6&8fL3>7jg*nBBd*~V552;Eq;1zlv z&QMHjWG)wJruIy>1H5S7afonh51mX$hZL`B*(wKuG-?-DGn3$NFQlnL*%e>#@;4Nz zEy4I-A(`)hj7c;o6n4l$bV;NjQ2}SMk+DF3DTS04{ZCx3sKT&C-v-78H&J|NAl`)b zU%W|32bdm8`;y>Y^o^wqovqW$z7*1SFrWY_82~Z~fQbY)V|M7ED=Eb+ebf`4;{eE& z9`&wuM~JUOId%j0^$o%w;45fW(z)D`Lw`SIebV|hw3-?ZAXKhTF}z&wC8%+4nfyn8 zvUo|vPBAERFLU&$gh43w4iK`Q(R%o?c|+qAeZb5fX1d+oGy0Jo?cNR80dTGcx%iVK zG!h*tx$7i?E8y-Wd^b2NmoZ~H9AFHLNPrZhuQo2U zZ>KoAcn}r1Qq@CI26!Q|P*s$414TrCv$#|Xxw#b8iYwvVT@I)P#mSSw_yAT07N>ue zq2n3DH?i>soCHQ7p$IC;t|-mLa%nDfX{u(WYk_BlJZZX=%}f2=vfygKvN~E`u*?ZTmp+MxmdtMNdm7TSv$ZUAGIXgdPB} zM4vD^Xku1v!s#noLGK5J(*B-&>P9bxUW3HIBKelBB-_P=p)w{FM~Fx+%j6a9d-9+` zNl4ptLYv{i-aLgi{vSgdVs^i-shCH-=W=9@Ku^jz3I3~sc>YxIhaWlKfiu{Lt zVpHnu2+WDRS}UQn2r`jVPP^!k#KeDxx6gt` zG`{e*w_U1TxNza}<>O@-mYKpYP4n@ETJ6N!UcL;4@T$pU^fjHwsAr8aUVVC1j-vjR zIf|~4>ZpHJuA|X!?ukXhqC3SbVUfHf%=aF8VIMH+fAm(f}j(yYF3x0FMw3F;QXzL<%97f&Y_Q1nPHK2nljo1ks_?(xxb*=-z zehGCdBB@pr0nC(#7>DZK&#ewzC{Rn9wX=I#}Kxyo`|RW$Z`t zvd+FWJJx$&G(6;g5JXq_9L?fwXYa-OI!OAbtw)e1p;u#(F~pFg{ZX#p1T{up+M-$* z+o5J{jtlNPo#a=(90%WcFn>MH3xux#j9@9#$?otS*C_|WvgVsr=1aAiDG};?cQOgjCshYPJI~bquZiembS{NOTjM5s9^3dV07Ex=K5{{SU{WXHDUnbu1+p9C2_qpZDY>DO(t6b*ptzdy1lPdQga*CI@HU8(!n=uz17roD-QGE12(B zE86F4UPl)EKEB6RIgZ28h7^Q>&jqj;E^3`lO>p7z?qJZRH{h$DB|ou(zA!5%065qp za%r6^KH9>6A>D$x&t41SsfyEz(n@W&wbJz16d)rFc5mDbs0;HmI&;UFi2Okb=sDwC zS?R`7c0#`(oBgvd0Fm0a#f?(!gB0|SElU;s;OKt1&3d!-7C>=t{q}m}>gh9kk=WAo zL4T#e()`hHh?}Z!v2z|p?}2Y~E{!<P91p=AnGXog$%fkxb7-EBRj^GrQ!eV_Hb^%3h= zHD}w=8v7~m;psfCc=7u2h>V9z^8u*VA~Drc(AyO|>Z+aTH42C1_?cYx7m#T*fhtW5 zcS1|Y3nNELfW1_=)S;S+!-`_?4Va9=uhXggDoLfyb|g|@KU51~|sfhQcF5%MYADxe}?!hDlkN@wN& z|604&7|GJIe7^g+pE~E%xl~nGRd-c)Rd-KM_jFfx*EBQC?ywi!nFZX%T|l{sv%4^V zuw>RC5F?17D-cOkWaSUh#K<3l7!r*BfG9tV{4+)pF7d}EhG=3;P~ruM_`ctF&Z(-I z*{|wZYmqsD4ZoLM53yZla0E*FABPADh<>Ze1pLwk|6)xTC zBX~VdVXFERTr+9TXt0p_Oi>?EcN}T1QT36mrjj2iEp9U1!7^i2Rz7Elv04#-9gtbx zEF3SkkAHoYO7NRiUi51`p`COZOK8k%McMyV>zm3MGipmmHI z{1O%n%J^8F{RM`)3%{52dt5hvcpV=$y8cK<%0FwMJSG~6R_&%xoEUWIgG|6`TzlfxE(-UN}p_8d98VIn7fipZkD$w(pFD(f_G!SyQo)JlZd6$w_u%=iX z4#Jqpei#vov2`RJtRHepJ4Es$E=dOl{}H#D8YiP5v8=7}QlMzn4-p~o)BrNh&9t{M zs;hvz8sG~rCH%{24{FzccfJhG{ukgMQ+5m{%-SPN*&tNZ{h0N$$NuChMgrod=%rsl z>+dTzQf0rAE5%M2>pc!PO8x*|we=9^y*+lz^xfJH6eI`Dbsf1%Qp|U(7ltuR1#>$z zjHT9GP5K{*d^I{bt`VwG+nr$MjNu=d9bwFAG19A$I4PzL){(YQgvtjd62?c|bg4IvMB2sQVfRT01i5R#JpcthM zBat!85OYS@G6O2gFeafUgH$wUm@Rg=4i6ZgU2Jh*@aV8NnDzU!L2rL3ephmlgAB#w zKcvENmFFM~AH|@58U^~*M|xGx`wmoPW`|`|`L&*|yGJz}M3uY+UR})xrWZdnp+}R? zip#e@X2tyJQpN0a`WNDMi4~J~2S=A@gL0?aazjQH)QWz8L3OaPdH*31MfBsp|L?u< zdoJdybMOvdZlVr#2;ikE#6{z}jpxfSu?@GHMvEO6=&WRa>h#6}>D7t%x_3Zp8%SC3gux(ufaytV>VG^4Y^)0~=x4GlP#E3zc}L+wyU3+f`I~AnNU>g<7*c>1^ZRod!-4jMV#d zTA42?Ugjj9)p0_w8OArujS_zU=X**%KFZ*9?-+b(>VRJ1PvTSFCK!%xs^s;agWyCU zxP#H_1U?Ro4mb}NJ?T2}?Yyzm7mLYJvnu`@p~GH(C?4nNh7Q$!!Z2#zJs#(V3GuGl zOAw*+R?e)S0{ilYVGvQ7M(EMNn-jy1bEx$KSb0#S;!s2M?2|%fZ9U0*jP|p(I13DR zxPsVE>b8^1d)FhKw#hRXG@$iBoHCr?29v7AIhD)?gX+BE^j%18b9}OomLeEx!b4Vr zOK{?UZ}G%aPtwITgwp^WnUDu9WV$3wL`otXr*Oe-AugA8z;c2#At1vj@reLy5-Nas z0cfU6i!%={K3Y{=jrEUYsPnOrA>z9B*sJ&`^eJkJ5Bxk`0Q^7&HK<3EV}(Hbr*I*( z=3FO&PV~BLND7Rc#tLieb*>Z~Ma2?$EA_B{-g3R&<~pv@L|1kKrX&l%9B{xP;^px` zOiuS&n8%2a{9w%3blr7vwV>7F9{pi+r{ZmaG*bk;J)6&nV$JjVAq68NVA4Ls5O}Y( zcRCS+;|`ONBwoki;KDgKy`cwR&szsEqX-hHfdXOF|CcqkPQg!k1U%UHSRb~2$NB?* z>+{wZ&3voDTpp0(=(K%_oQ$U+v!?qL!y0Du*-4SjkY*&W5FHNH$=FQ8)`udhlSMHC zOy@?Jh(%+uoSb4r1Y*hd;rmfkj92&2Muop(t`iEXZ$>N=9Raeuhn%t}<2R1Fg#@Fj z6>R1rilT%t)wX+Ev=yGmV5BCPyx`j+mb4Bovk65gg{3F zI}`kKJ_5cEa&(a0`osGPq922}r?f=|;O0UfcbE_Tg6yyCy?HSBPuj^hL|b&*aRRqy zNS{IY&OA>eaLhf#M}db&IEPNd%(ih#x;h}n65~>s1fAp&hZNwv;^4c2!)Nz@96YBF zBND_Q{JFTY+kD=qR5^@5tAn2;)`cXFjquSvJbHO&%hOmZW-hQty4J`#wC=TDgHdQH z=%xV!ZL5O{_8B4s&5o*omcm5Dhs2Q86$r&y#j}75uS~3hiDN*Q9mW44Ts=LRU__se zZ`QHRdGTDnGmJ>GJ^`I*qbt#Wy)cfm$w3Dkbb+A=XJ9#o@Orj`!1VNt+u)HZ>wd4XOyUqTU=vf_pI+&*R0oCZ`JXKqZgya9gu2?NY7qr=z$vTK=YZ_ zT!ip5R>pJ~Nwo~q15Q6Ajq-g^_U<9*H5mR+yJ6T4!%_8Ru-PKo2~d@v*3;O3%cmOM(wbM(yLr8Y z3qLx=X=P!Gni{G&Qe-i{&BZPZzlhda=8j*@Q=khWj$EN+ z0Jac!XNb>EZ+ZBf=(pS`hUbud8)Osbk$aKA)8feOaFW{oMQCf6(0v~s$QSeT&`m*# zKMFb>8Dds{$MRikczMi%nxDN;BN-7;jGFX=qBfc^@$o6jbEv+=HQdrJ)@A-CTY4@R z(?wlQ1$SZ4w(q|`^PRx7MBw<@{du+k2Fd1J(ml!@mu{>x2fp$=k(>7r8yhKw5uKmr zAT`oO70&7^6jc>s_Dj5;VC~1aPLAK2Zx?O-kVLS5Cxi=v``R_ZxhtMv;=xX*!Qc9! zwXZXC>OhIRPlZ)pjUMcpkgx8T|Kf3OJ6t_pudR}LxwZ2+I*gp}V^j*|-Y*zP!AC*_ zy`YBc2CmwM8x6G$^cp6vNTg+u(WU__T+BfXt)9lOx6&-H?bc?-0Vflx&xX@~IO@90k<9f2J$KOEUvpg-eBN^R0&YqKN#m{$l?4`g8nN7E(g9_;m1tPd1vClo8ZdIVaO`bS^ z&L2!b!`x>u4Y8*!k|j~p-3gxDtSagRnxi?!Z|I&1o%hYRytc|5qF2pra2UO3>-@^- z;VoS=eFSgX0x@*UvqPnxQ!0=?S$FN8AAJIs)ju8v;CNq)yjytZGj4QYOQRt6kqvr_ zznRzxrLj$xFef~nRZ%5PYrD@NI#EP_BdF*4jE(WUZp7c$+Yf?gxwg?ya2`1y6m~;| z^#v&&j{7YVt;MfGL+Diz^!r!I2A}NTpr_pnH8#P34~f7AxTqa9K~u=IjyY%gr;&jm z1&_6&fgg13J`)c!@DiX&DGkzgq$s!ZvaMX1z~IGHD&}PpG~ntn8-}vqAp_Wd#J&Qd z6u2M({M79bjJmFG!h2#Al(!uefh^-;-pF!{$FpIK&vdq2R?IY#h{7N&oJVS6LE2e^ zF9g0V)g&b#w8v9~tWg>vzhTFoY2>dZp;j~I-Si*sZh{}RRi?ufV>Cc==}7435f1F< zUyo9Z`^hi11*?S`?B1UUnSy11EYtf_iHuyhw5Yyqduh_`(xRWNCkXecNxX)Ma$+2= z&tpG(>l=0}j;^$A2(Z_I`5!4CdJ{;YNdWJ)z%9@-Pn!Ze`nKrjz z+`>4PD?n#l*?(Ulnvv~68V?e14Z_bti<4v!-woajH4LJd4G&Zi_v4d)ep&WU;KM&H z!}yWnqPrtyF%wkY5l^P@{tbVLGDIy7&0?ZX47++_k$?DQ+c=SdB%1d z1h+P>H$3C;yC%&;#qmy+aDRr$Y@G+|>u5sml0{F*xdz{@tvvCfx$|m`wO4ZQyVb=k z(c)nd=VjJPt@N&>byetp#xfh7&Ni#)>Wu8D74$h$7O3_p|t+;>$yznZtfV@I^wD-E_{L+tu%csEGc8b3ePoKS}O z_eI&DDpG>Eu2`(-E2h)E&)|G^lVO1fn;Y+R@v@J*709I?PsCWO`lDBZkYAI z4gMH7PeGDAuyL>fzhClg&$E5r^8ME3(2cy!9_em+ksB_5jSpfSTbI$x1S?=xd6@GW z`}2U@$$`3LrXHcx7$Q}usZrKtsddKxL55WHu#WV>X~#a`?)Y<^qjky8 zb7G74OPfHc@my(x`at4ptKo69zNcsMt@#ph?ZUTzsNZ6>f#=Y?2~i(8puSV-a8)i|&gJ@1U2H(^EEBbj_-jJ z0*5YtF`uWQkS*c0IK59egmV)4nE$67Fz!Q5jN0{<9G&fb7u`-ZSx=kTtPooYSkA?uoEmRm+V zQgUf$yaI-#^v;Q9VZ9BFtzvLJAjZTu{kpGzgPky^qN=E`nh=Yd=09;HG=a#z7r;wJ z*(mwA0hLUF(KLHyL+Wi_T$7=$7Q1N#B_;z96 z3>{@-nD-$2D1IMo$VSLz=X;U&Q7?i%qypN?;C8)V%P#9n*1v;v9cvtz3dVJsONyoM61P_$0OH`euDCrzG&^o++#eNPD57vsLoRP zU;qE{28D)-(<%C=M^%vB_;B=-zF3=ou^@_Y4T`mrq{TS@Kfh`RLElD`aY$hl$GiKx zE!~ZR#wO{5rasWI$`4wvwq9qw#d^Yem-S1CySp{f6!s%Snby{HWW~(5cPGbcjNxth z6bI2cJXC;UM>;k55A2w1d|FJVpj+_}9+?!HUSeK=qd$gYGdb5M;SW#G&2=+>IX%{w zlU%59r;}{Oot-czZg4OR!Xym5-A-}y3L#)T4sdO!+vQNNKiz6`mZU90iVnR<9fw{- zQcuQ`nDO=_PRo`Yu2f;vCtzlT-6T!eI^Gl~V6PUSk}uLzT9!8bn(yTU#km^fqwTd$ zf7ih&G#+h@ce`N}hL6*{C~``F){!Zc&@Lw3L}BYSNxK!(4RBdW+_Iq{8Cvc8;P16s zAMxP&G3O{}ot*$Xf6tFJW?v9dwYz&5Q75#mq z3Ic~eFY>sf2+yIHX4H0gcie5tiulB-wO(VDOI0l~hk9XomMw(?C=>o~NPuf-IgAXL zpG;0a(Amv-bg#zCxtgCHB=LT~N{eg}_#lv92-l-<8OMCW{L9|nQTrYZ7jiWw8>jP) z&LY*aR03m~7WWZf*teH0d+(*oT`UDLyhJf={j8Z;d3w>p9aboF*8c(#EAOt{h3@nrVYa9jv0DCkBP?H~QD-xX8ln6DF6y^s>%G?M5Q}8=# zvs`RI0e?HpJPJIfJy<=6J?cK9KK?(^LI^_$LpVd0L>5GjM8ZVW zMCL_EMXE*MMq)Q_NHrRCrXfRTx#GRq|GfR|Z!kS5#NXSUeh7rdbGCURmr~cv`+&9$TJVWL%P5 z=v_ozi~s<5oMT{QU|@K|aE(EL0R)(Umule-${{QE496}EfV)QXUf+13jFvbK^%y0_!aVieu3OIt(a7A1R zSH@LvRa^~M$2D+GTnndv;|yFI*THphJzO6*zzuOD+!!}OhMVGMxH-7`DCuOb(yYRA(e;&8-=ksYCm90CYNztmQ3Y` zPr$Z~2Ce06Z(c8FoE1XlEX3IflXN`gtQ3Z26z+Zldz_hwo_tDYS4tG^T7#C3+j%3! z)~4RSCY7V$YJ+3G5_}zh^Fs6Wm_{qw5RV$-bR~Hl@RY_n4?!<9%M-4Pf>l;{pp85x zPVqhoMN3;J`P!eoHKbfuJBnK_S>$0t{;W%#izuhKPMT=9rysQ}WVFS;&iV~ba?NYM z=s4H)ylAU4@~29=qeX)Ji)c3&3o4`{rq^i!akQd{pDK3bqjxBO@3NL2m_{D9<{shM zf^EpT)3%SY1*J&jvyN6&?outs9XEpI`yH`0=R)LE zr0+ZbL+0SE)~(FB!9o zJd7&p-T}FPQp&naXx>O&+i7LwhVflS-%7qqFQ_RpnWI3&0SWvs15quA#F))HQ;v&pa*s-5?U3~{Kp>2h#DXR2_Uu#2qq+Vp3lTJ_8+r*MszIwowz0)AKMi(U7n7AG^FXn?)UlrNmk!u;}b0dD|0bt zW@y*4%6y4T0_q|-vUKaUy&c<<3OllN1sx8TBFRIjxyHL$XX{el@$l`SW%QP&Rm^b> zXnAb?)fQ7PJ3F;bQ0=d>MeS-M#vP@?b4jbkcHjGw873`7BJ&CodCMg1mT^}3o@^N@ zr8FXcpEit&!b{$6)X*k%))~1LZbgc;Tn$Kq{KYi#GxeV(B~3kU?=TM)-B~>Xv6FOp zrOq%#VUlwZJ5%%ZuvYC=oYso8GbCeNs{+>KQdA!VWz$I_WlQ458c23OleGS diff --git a/src/styles/icons.woff2 b/src/styles/icons.woff2 index 1a74a357a17e97ed1562c97ebb3d3dcc3f476d41..af2268d2223464d1de50071ec65f244855709900 100644 GIT binary patch literal 25228 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 XX0g^$+_!%=to@tn2`mFD=!g#hb~Rv< literal 25064 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