Skip to content

feat: emoji shortcode autocomplete across all text inputs#372

Merged
barrydeen merged 1 commit intomainfrom
shortcodes
Mar 30, 2026
Merged

feat: emoji shortcode autocomplete across all text inputs#372
barrydeen merged 1 commit intomainfrom
shortcodes

Conversation

@barrydeen
Copy link
Copy Markdown
Owner

Summary

  • Add :shortcode: autocomplete popup to all text inputs: note composer (text & gallery modes), DMs, notification inline replies
  • Extracted reusable EmojiShortcodePopup component from group chat's inline implementation
  • Add NIP-30 emoji tags (["emoji", shortcode, url]) to group chat messages, DM rumors, and notification replies
  • Render shortcodes visually in text fields (⬡shortcode) via OutputTransformation/VisualTransformation
  • Render emojis in compose preview and notification sent-reply cards via RichContent emojiMap
  • Remove peer emoji library fetching from GroupListViewModel — use NIP-30 emoji tags on messages as the authoritative source instead of fetching each sender's kind 10030/30030

Test plan

  • Type : in note composer (text mode) — emoji popup appears, selecting inserts shortcode
  • Type : in gallery caption — emoji popup appears, selecting inserts shortcode
  • Type : in DM conversation — emoji popup appears, selecting inserts shortcode
  • Type : in notification inline reply — emoji popup appears, selecting inserts shortcode
  • After inserting shortcode, text field shows ⬡shortcode instead of raw :shortcode:
  • Compose preview renders custom emojis as images
  • Sent notification replies render custom emojis as images
  • Published notes/DMs/group messages include emoji tags in event
  • Group chat messages from others render emojis from their event's emoji tags

Add :shortcode: autocomplete popup to note composer (text & gallery),
DMs, and notification replies. Extracted reusable EmojiShortcodePopup
component from group chat. Add NIP-30 emoji tags to all published
events (group chat messages, DM rumors, notification replies). Render
shortcodes inline in text fields via OutputTransformation and in
compose preview/notification replies via RichContent emojiMap.

Remove peer emoji fetching from GroupListViewModel — rely on NIP-30
emoji tags on messages instead of fetching each sender's emoji library.
@barrydeen barrydeen merged commit dde861b into main Mar 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant