Homescreen UI revamp#114
Conversation
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Updates the wallet list/home UI styling and theming, adds new iconography and custom fonts, and aligns several loading indicators/buttons with the active theme (including dark mode support).
Changes:
- Reworks
WalletsListheader/actions/empty state UI (new toast, icons, balance formatting, and styling). - Adds Clash Grotesk font integration (RN assets config + iOS/Android manifests/plists) and introduces
ClashFontconstants. - Improves theme usage across the app (dark theme export/use, themed activity indicators, themed settings button, color-scheme switching).
Reviewed changes
Copilot reviewed 20 out of 30 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| screen/wallets/WalletsList.tsx | New wallet header/actions/empty state UI, toast behavior, and theme-driven styles/icons |
| screen/UnlockWith.tsx | Theme-colored ActivityIndicator |
| react-native.config.js | Registers font assets for React Native linking |
| navigation/LazyLoadingIndicator.tsx | Theme-colored ActivityIndicator |
| navigation/DetailViewScreensStack.tsx | Passes theme colors into SettingsButton |
| loc/en.json | Adds new strings for empty state, toast, and button labels |
| ios/link-assets-manifest.json | Adds generated font linking manifest for iOS |
| ios/Widgets/Info.plist | Registers Clash fonts for the Widgets target |
| ios/Shroud/Info.plist | Registers Clash fonts for the app target |
| ios/Shroud.xcodeproj/project.pbxproj | Adds font files to Xcode project resources |
| constants/fonts.ts | Adds ClashFont family constants and documentation |
| components/themes.ts | Adds new theme color tokens; exports BlueDarkTheme and updates dark palette |
| components/icons/ShieldReceiveIcon.tsx | New SVG icon component for empty state |
| components/icons/SettingsButton.tsx | Replaces RNE icon with themed SVG button |
| components/icons/SearchIcon.tsx | New SVG icon component |
| components/icons/ReceiveArrowIcon.tsx | New SVG icon component |
| components/icons/QRScanIcon.tsx | New SVG icon component |
| components/icons/PayArrowIcon.tsx | New SVG icon component |
| android/link-assets-manifest.json | Adds generated font linking manifest for Android |
| App.tsx | Adds color-scheme based theming and moves indexer/bridge init into effects |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
15dde2b to
11e04b8
Compare
11e04b8 to
fe07f74
Compare
|
we're not using the variable font style anywhere. drop this commit 6122c32 |
| </TouchableOpacity> | ||
|
|
||
| <View style={styles.actionRow}> | ||
| <TouchableOpacity |
There was a problem hiding this comment.
Accessibility regression. These inline action buttons dropped the accessibilityRole/accessibilityLabel that the old FButton set automatically:
- The icon-only Scan button (just below) has no
<Text>child, so VoiceOver/TalkBack announces it with no name at all. - Request and Pay still read their text but lost the explicit
buttonrole. - The disabled Pay state (zero balance) has no accessibility cue. Note
accessibilityState={{ disabled: true }}would be wrong here since the button still fires the toast — use anaccessibilityHintlike "No balance yet" instead.
Please add accessibilityRole="button" to the three action buttons (and to the toast Request / "Share your address" buttons), and accessibilityLabel="Scan QR code" on the icon-only scan button.
There was a problem hiding this comment.
ClashGrotesk-Variable.ttf is registered here (and in android/link-assets-manifest.json, both Info.plists, the Xcode project, plus the assets/fonts and android/.../assets/fonts copies — ~108KB × 2 platforms), but nothing references it: constants/fonts.ts only maps the static -Regular/-Medium/-Semibold/-Bold .otf weights, and there's no fontFamily: 'ClashGrotesk-Variable' anywhere in the app.
Either wire it up or drop it from all the manifests/plists/assets so we're not shipping dead bytes. What was the intent behind adding it?
There was a problem hiding this comment.
This new icon replaces the old components/ScanIcon.tsx, which now has no remaining references in the codebase (its only consumer was the import removed from WalletsList.tsx). Please delete components/ScanIcon.tsx to avoid leaving dead code behind.
|
Why is the scan progress bar not showing up? |
da5089b to
51e60c6
Compare
51e60c6 to
fe698a4
Compare

Redesign the Home Screen as per design document for both light and dark themes
