Add DM inbox with NIP-04/NIP-17 support and soft delete

Features:
- Full DM inbox UI with conversation list and message view
- Support for both NIP-04 (kind 4) and NIP-17 (kind 14/1059) encryption
- Progressive message decryption with background loading
- Soft delete using kind 30078 Application Specific Data events
- Message selection UI with delete selected/delete all
- Undelete all functionality per conversation
- Jump to newest button with new message counter
- Conversation filtering (all / follows only)
- Per-conversation relay and encryption settings
- New messages indicator on sidebar (clears when inbox viewed)
- Follow indicator on conversation items

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
woikos
2025-12-31 11:06:51 +01:00
parent f78138c7c4
commit fecd4fdd45
29 changed files with 3717 additions and 15 deletions

View File

@@ -10,6 +10,7 @@ import { ChevronsLeft, ChevronsRight } from 'lucide-react'
import AccountButton from './AccountButton'
import BookmarkButton from './BookmarkButton'
import HomeButton from './HomeButton'
import InboxButton from './InboxButton'
import LayoutSwitcher from './LayoutSwitcher'
import NotificationsButton from './NotificationButton'
import PostButton from './PostButton'
@@ -57,6 +58,7 @@ export default function PrimaryPageSidebar() {
<HomeButton collapse={isCollapsed} />
<NotificationsButton collapse={isCollapsed} />
<SearchButton collapse={isCollapsed} />
{pubkey && <InboxButton collapse={isCollapsed} />}
<ProfileButton collapse={isCollapsed} />
{pubkey && <BookmarkButton collapse={isCollapsed} />}
<SettingsButton collapse={isCollapsed} />