Skip to content

feat: installment panel, notification center, comments, address book#1

Open
NnamdiCyber wants to merge 4 commits into
mainfrom
feat/installment-notifications-comments-addressbook
Open

feat: installment panel, notification center, comments, address book#1
NnamdiCyber wants to merge 4 commits into
mainfrom
feat/installment-notifications-comments-addressbook

Conversation

@NnamdiCyber
Copy link
Copy Markdown
Owner

Summary

Implements four high-complexity issues in a single PR.

Stellar-split#39 Add payment installment UI

  • New InstallmentPanel component on the invoice detail page
  • Calls splitClient.getInstallmentPlan(invoiceId, publicKey)
  • Timeline of (date, amount) pairs; next due installment highlighted in indigo; past/paid installments dimmed with ✓ badge
  • Shows "No plan registered" when no plan exists
  • Only rendered when a wallet is connected

Stellar-split#30 Build invoice notification center

  • New NotificationCenter component added to the global layout header
  • Bell icon with unread count badge (capped at 9+)
  • Dropdown lists notifications in reverse-chronological order from localStorage key stellarsplit_notifications
  • Unread notifications have a blue dot indicator
  • "Mark all as read" clears the badge; clicking a notification navigates to the relevant invoice
  • Listens for storage events to pick up notifications written by the polling mechanism

Stellar-split#43 Add invoice comment system

  • New CommentSection component at the bottom of the invoice detail page
  • Stores { id, invoiceId, walletAddress, text, timestamp }[] in localStorage key stellarsplit_comments
  • Filtered by both invoice ID and wallet address — private per wallet
  • Add and delete individual comments; timestamps shown in relative format ("2 hours ago")
  • Only rendered when a wallet is connected

Stellar-split#41 Implement address book

  • New src/lib/addressBook.ts with getAddressBook, addEntry, updateEntry, removeEntry, searchEntries (max 50 entries, localStorage key stellarsplit_address_book)
  • RecipientForm updated with auto-suggest dropdown (triggers at ≥2 chars, matches nickname or address prefix); valid G... addresses auto-saved on blur
  • New management page at /address-book with add/edit/delete UI
  • "Address Book" link added to the global header

Testing

  • npm run build passes with no TypeScript errors
  • All pages render; /address-book is a new static route

marvelousufelix and others added 4 commits May 26, 2026 17:18
…plit-toggle

feat: add Equal Split toggle to new invoice form
…dress book

- Stellar-split#39 InstallmentPanel: timeline of installment schedule on invoice detail
  page, highlights next due, marks paid, shows 'No plan registered' fallback
- Stellar-split#30 NotificationCenter: bell icon in header with unread badge, localStorage-
  backed dropdown, mark-all-read, click-to-navigate
- Stellar-split#43 CommentSection: per-invoice private notes in localStorage, add/delete,
  relative timestamps, wallet-scoped visibility
- Stellar-split#41 AddressBook: localStorage address book (max 50), auto-suggest in
  RecipientForm, management page at /address-book linked from header
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.

3 participants