Add useNip05Verify hook that uses Nostrify's NIP05.lookup() to verify
that a claimed NIP-05 identifier resolves to the correct pubkey via
.well-known/nostr.json. Update Nip05Badge and all raw nip05 display
sites to suppress display when verification fails or is pending.
- Add overflow-hidden to NoteCard article elements in both normal and
threaded layouts to clip content that exceeds card width
- Add overflow-hidden to NoteContent root div to prevent link preview
cards and embedded content from pushing beyond container bounds
- Strip .xdc URLs in EmbeddedNote content preview (was missing from
the media URL regex, causing raw long URLs to render in quote embeds)
- Add overflow-hidden to EmbedContentPreview paragraph for defense
against long unbreakable strings
- Use disableEmbeds on NoteContent inside ReplyComposeModal's embedded
post preview so URLs render as plain links instead of full preview
cards that overflow the clamped container
- Add attachment indicator chips to EmbeddedNote (images, videos, apps,
links) so stripped media URLs still have a visible presence
Render dropdown inline with absolute positioning instead of portaling
to document.body, which placed it behind the modal overlay. Also set
overflow-visible on DialogContent so the dropdown isn't clipped.
- Moved Edit/Preview toggle from toolbar to modal header
- Added controlled preview mode to ComposeBox component
- Toggle now appears next to close button in modal header
- Added border-bottom to header for visual separation
- ComposeBox can be controlled externally or use internal state
- Fixes layout issues and improves UX in modal
Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
- When quotedEvent is present, don't pass event as replyTo in ComposeBox
- This ensures quote posts are published as kind 1 with q tags, not replies
- Repost (kind 6) was already working correctly
Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
- Added quotedEvent prop to ComposeBox for quote post support
- Auto-detect and display embeds: nevent, note, naddr, and link previews
- Add remove button (X) to clear any embed from compose
- Quote posts open ReplyComposeModal with quoted event embedded
- Updated RepostMenu to open quote dialog instead of toast
- Added NIP-18 quote tags (q tag) when publishing quotes
- Embeds shown at bottom of compose with EmbeddedNote/EmbeddedNaddr/LinkPreview
- Support for manually typed nostr: URIs in compose content
- Invalidate event stats after quote to update counts
Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
ReplyComposeModal now handles both cases: when an event is passed it's a
reply (shows embedded post preview), when no event is passed it's a new
post. FloatingComposeButton reuses ReplyComposeModal instead of having
its own duplicate dialog.
Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
Updated ReplyComposeModal, FloatingComposeButton, and InteractionsModal
to place the title on the left and the dismiss X button on the right,
matching the standard dialog layout pattern.
Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
- Created ReplyComposeModal component that shows the original post embedded
in a compact card above the compose area, matching the reference design
- Updated ComposeBox to accept replyTo, forceExpanded, and hideAvatar props
- ComposeBox now generates proper NIP-10 reply tags (root/reply markers,
p tags for thread participants)
- Wired reply buttons in NoteCard and PostDetailPage to open the modal
- Reply success invalidates both feed and replies query caches
Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>