Skip to content

feat: UI polish round 2#421

Open
dmnyc wants to merge 7 commits intobarrydeen:mainfrom
dmnyc:feat/ui-polish-round-2
Open

feat: UI polish round 2#421
dmnyc wants to merge 7 commits intobarrydeen:mainfrom
dmnyc:feat/ui-polish-round-2

Conversation

@dmnyc
Copy link
Copy Markdown
Contributor

@dmnyc dmnyc commented Apr 2, 2026

Summary

Zap Dialog

  • Remove message text from preset chips; show small message icon hint instead
  • Pre-fill message field when selecting a preset, clear it when switching to a preset without one
  • Move save button into the custom amount flow (appears below amount input when valid)
  • Sort all presets by amount ascending
  • Flatten chip layout from Column to single Row for consistent height

Global Bolt/Bitcoin Icon Toggle

  • Wallet nav drawer icon respects the bolt/bitcoin setting
  • Lightning address icon in drawer header and user profile respects the toggle
  • Profile header zap button respects the toggle
  • Increase unselected toggle icon alpha from 0.4 to 0.7 for better contrast across themes

NIP-05 Verification

  • Fix case-sensitive NIP-05 JSON key lookup — servers returning capitalized names (e.g. "Blockstream" vs "blockstream") were incorrectly flagged as impersonators
  • Extract shared Nip05Badge composable with self-contained collectAsState() subscription so it recomposes reliably in all contexts (feed, quoted notes, profile, notifications, search)
  • Differentiate verification failure states:
    • Impersonator (pubkey mismatch): grey text + red cancel circle icon — permanent warning
    • Error (server unreachable): faded grey text, no icon — temporary, not actionable
    • Verified: orange/primary checkmark circle — unchanged
  • Pass nip05Repo to all NoteActions constructors (was missing in 6 places: UserProfileScreen, NotificationsScreen ×2, Navigation DM/DM-group/group-room, SearchScreen)
  • Hide nip05 field entirely for blank identifiers

Zap Animations

  • Replace hand-drawn bolt paths with the actual ic_bolt vector in both LightningAnimation and ZapBurstEffect
  • LightningAnimation: smooth pulse + scale breathing instead of rapid jittery flicker
  • ZapBurstEffect: bolt icon particles radiating outward with staggered ease-out instead of jagged lightning strokes
  • Fix bolt aspect ratio to 14×22dp to prevent horizontal stretching

Action Bar

  • Replace reply arrow icon with comment bubble (ModeComment) at 22dp

Follow Indicator

  • Remove follow badge circle from profile picture avatar
  • Add subtle inline checkmark next to display name (PostCard and GalleryCard)

Emoji Reactions

  • When user opens emoji library via "+" in reaction popup, selecting an emoji now both adds it to the quick list AND sends the reaction in one action
  • Applied across all EmojiLibrarySheet call sites (feed, profile, thread, article, notifications, DMs, groups)

Wallet & Auth

  • Hide recovery phrase behind full-opacity tap-to-reveal overlay with eye icon
  • Persist balance hidden state to SharedPreferences (survives app restart)
  • Fix balance unit pills wrapping on small screens (tighter padding, smaller text, maxLines=1)
  • Add superellipse squircle shape to sign-in logo for non-black themes
  • Remove quotation marks from zap messages in TopZapperBanner

Interface Settings

  • Collapse custom color picker behind tap-to-expand section (prevents accidental touches while scrolling)

Navigation & Layout

  • Fix thread scroll-to-reply: fall back to getReplyTarget when getRootId returns null; wait for list layout before scrolling; clear scroll target after success
  • Auto-scroll drawer to bottom when Settings menu expands
  • Add statusBarsPadding to drawer content so profile picture doesn't overlap phone UI
  • Remove bottom inset gap from drawer by zeroing window insets
  • Fix black gap between content and bottom nav bar by applying NavigationBarDefaults.windowInsets

Test plan

  • Verify zap dialog preset chips show amount + message icon, sorted ascending
  • Custom amount → enter value → "Save" appears below input → saves and selects
  • Toggle bolt/bitcoin in Interface settings → verify all icons update (drawer, profile, action bar)
  • NIP-05 with capitalized server keys (e.g. Blockstream) verifies correctly
  • NIP-05 impersonator: grey text + red ⊘ icon
  • NIP-05 error: faded grey text, no icon
  • NIP-05 verified: orange/primary checkmark circle
  • Consistent across posts, quoted notes, profile, and notifications
  • Send a zap → observe smooth pulse animation during send, bolt particle burst on confirmation
  • Comment bubble icon visible in action bar row, consistent size with other icons
  • Open emoji library from reaction popup "+" → select emoji → verify it both adds and reacts
  • View recovery phrase → verify hidden behind overlay → tap to reveal
  • Hide wallet balance → restart app → verify stays hidden
  • Check balance unit pills don't wrap on small screens
  • Tap a reply in feed → thread scrolls to that reply, not the root
  • Open drawer → profile picture sits below status bar
  • Expand Settings in drawer → auto-scrolls to reveal items
  • No black gap between content and bottom nav bar
  • Sign-in screen logo has squircle shape on non-black themes
  • Color picker in Interface settings collapsed by default, expands on tap

🤖 Generated with Claude Code

dmnyc added 2 commits April 2, 2026 16:02
- Remove message text from preset chips, show small message icon instead
- Pre-fill message field when selecting a preset, clear when switching
- Move save button into custom amount flow instead of main chip row
- Sort presets by amount ascending
- Reorder chips: presets, custom, then save
- Flatten chip layout from Column to Row for consistent height
- Wallet nav drawer icon respects bolt/bitcoin toggle
- Lightning address icon in drawer header respects toggle
- Profile zap button and lightning address icon respect toggle
- Increase unselected icon alpha from 0.4 to 0.7 for better contrast
- Collapse color picker behind tap-to-expand in Interface settings
@dmnyc dmnyc force-pushed the feat/ui-polish-round-2 branch 2 times, most recently from ed534de to f2146de Compare April 2, 2026 21:00
dmnyc added 5 commits April 2, 2026 17:06
- Extract shared Nip05Badge composable with self-contained state
  subscription via collectAsState() for reliable recomposition
- Show grey text + red cancel icon for both ERROR and IMPERSONATOR
- Pass nip05Repo to all NoteActions constructors so quoted notes,
  notifications, search, DMs, and group rooms verify correctly
- Replace follow badge on avatar with subtle inline checkmark next
  to display name to avoid confusion with NIP-05 verified icon
- Hide nip05 field entirely for blank identifiers
- Replace hand-drawn bolt path with ic_bolt vector in both animations
- LightningAnimation: smooth pulse + scale instead of jittery flicker
- ZapBurstEffect: bolt icon particles radiating outward with staggered
  ease-out instead of jagged lightning strokes
- Fix bolt aspect ratio (14x22dp) to prevent stretching
- Save pending reaction callback when opening emoji library from popup
- Invoke callback with first selected emoji when library sheet completes
- Applied across all EmojiLibrarySheet call sites (feed, profile,
  thread, article, notifications, DMs, groups)
- Hide recovery phrase behind tap-to-reveal overlay (full opacity)
- Persist balance hidden state to SharedPreferences
- Fix balance unit pills wrapping on small screens (tighter padding)
- Add squircle shape to sign-in logo for non-black themes
- Fix bottom nav bar gap by applying proper navigation bar insets
- Remove zap pill quotation marks from TopZapperBanner
- Fall back to getReplyTarget when getRootId returns null for thread
  root resolution so replies with deprecated NIP-10 tags scroll correctly
- Wait for list layout before animating scroll to target reply
- Clear scrollTargetId after successful scroll to prevent re-scrolling
- Auto-scroll drawer to bottom when Settings menu expands
- Remove bottom inset gap from drawer sheet
@dmnyc dmnyc force-pushed the feat/ui-polish-round-2 branch from f2146de to 4b84179 Compare April 2, 2026 21:06
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