Telegram-iOS/submodules/TelegramUI/Components/Chat/ChatTextInputPanelNode/Sources
isaac 3ed8c926a8 Custom emoji in markdown rich messages (send + round-trip)
Parse custom emoji into RichText.textCustomEmoji when sending markdown
rich messages, and round-trip them through edit, copy, and paste using a
shared tg://emoji?id=<fileId> markdown-link marker.

- Send: rewrite each customEmoji input attribute into a
  [<alt>](tg://emoji?id=<fileId>) marker before the CommonMark parse, then
  intercept the marker URL afterward to emit .textCustomEmoji. Only rich
  messages are affected; a custom emoji alone stays on the entity path.
- Reverse: InstantPageToMarkdown (whole-message copy + edit reconstruction)
  and InstantPageMultiTextAdapter (selection copy) emit the marker;
  edit-load and chat paste reattach it as a live customEmoji attribute.
- Marker helpers shared in TextFormat/CustomEmojiMarkdownMarker.swift.
- Rich sends now pass inlineStickers so recipients can fetch the files.

Follow-up to verify at runtime: recipient rendering goes out with
Api.InputRichMessage.documents: nil; if recipients see only the fallback
glyph, populate documents: in apiInputRichMessage().

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 17:51:37 +02:00
..
AccessoryItemIconButton.swift Update 2025-09-30 20:54:54 +08:00
BoostSlowModeButton.swift Cherry-pick fixes 2026-02-09 23:03:51 +04:00
ChatTextInputPanelComponent.swift Various improvements 2026-05-05 14:57:06 +02:00
ChatTextInputPanelNode.swift Custom emoji in markdown rich messages (send + round-trip) 2026-05-31 17:51:37 +02:00
InputIconButtonComponent.swift Glass 2026-01-25 00:31:18 +08:00
LiveMicrophoneButtonComponent.swift Stories 2025-11-13 00:25:29 +08:00
MenuIconNode.swift Merge branch 'master' into glass 2025-09-02 19:55:51 +02:00
StarReactionButtonComponent.swift Glass 2026-01-25 00:31:18 +08:00