Telegram-iOS/submodules/TelegramUI/Sources/Chat
isaac 1d8931b334 Render markdown rich-text preview in send-message context screen
When the user long-presses Send in the main chat and the composed text passes the
same rich-markdown gate used at send time (richMarkdownAttributeIfNeeded), the
send-options preview bubble renders the message as rich InstantPage content,
crossfading from the raw text as the menu animates in. Plain text and custom chat
contents / edit previews are unchanged.

ChatSendMessageActionUI cannot depend on InstantPageUI (it closes a dependency
cycle via LocationUI -> AttachmentUI -> ... -> ChatTextInputActionButtonsNode), so
the rich view is built in TelegramUI (ChatSendMessageRichTextPreview, wrapping
InstantPageV2View + the outgoing message theme) and injected into the screen via a
new ChatSendMessageContextScreenRichTextPreview protocol, mirroring the existing
media-preview pattern. The main-chat send call site classifies the compose text
and injects the preview; MessageItemView lays it out within the send-button-bounded
bubble envelope and crossfades between the raw text and the rich layout.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 15:46:16 +02:00
..
ChatControllerEditGif.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatControllerEditSticker.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ChatControllerFrozenAccount.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ChatControllerLoadDisplayNode.swift Make rich messages editable via InstantPage↔markdown round-trip 2026-05-26 23:10:48 +02:00
ChatControllerMediaRecording.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatControllerNavigateToMessage.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatControllerNavigationButtonAction.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatControllerOpenBankCardContextMenu.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ChatControllerOpenCommandContextMenu.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ChatControllerOpenDateContextMenu.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatControllerOpenDocumentScanner.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatControllerOpenHashtagContextMenu.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ChatControllerOpenLinkContextMenu.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ChatControllerOpenLinkLongTap.swift Formatted date support 2026-02-06 14:24:03 +04:00
ChatControllerOpenMessageContextMenu.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatControllerOpenMessageFactCheck.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatControllerOpenPeer.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatControllerOpenPhoneContextMenu.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ChatControllerOpenPollContextMenu.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatControllerOpenPollOptionMedia.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatControllerOpenTimecodeContextMenu.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatControllerOpenTodoContextMenu.swift WIP 2026-05-20 00:33:08 +08:00
ChatControllerOpenUsernameContextMenu.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatControllerOpenViewOnceMediaMessage.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatControllerOpenWebApp.swift Postbox -> TelegramEngine waves 37-43 + wave 44 design/plan (squashed) 2026-04-24 23:19:43 +04:00
ChatControllerPaidMessage.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatControllerPaste.swift Postbox refactor waves 358-426 2026-05-07 07:36:30 +02:00
ChatControllerPlayMessageEffect.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatControllerQuickShare.swift Various improvements 2025-04-05 19:18:54 +04:00
ChatControllerReport.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ChatControllerThemeManagement.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ChatControllerToasts.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatMessageActionOptions.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatMessageDisplaySendMessageOptions.swift Render markdown rich-text preview in send-message context screen 2026-05-29 15:46:16 +02:00
ChatSendMessageRichTextPreview.swift Render markdown rich-text preview in send-message context screen 2026-05-29 15:46:16 +02:00
PeerMessageSelectedReactions.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
UpdateChatPresentationInterfaceState.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00