Difficulty: Advanced
Type: Refactor
Summary
Create reusable wallet address display components so wallet values are shown consistently, safely, and copyably across the dashboard.
Current Behaviour
The members page manually truncates wallet addresses using slice(0, 6) and slice(-4). Other current or future dashboard surfaces may display wallets differently, leading to inconsistent formatting and weaker usability.
Expected Behaviour
Wallet addresses should be displayed through a shared component that shortens long addresses, preserves access to the full value, supports copying, and handles invalid or missing wallet values gracefully.
Suggested Implementation
Add a utility such as formatWalletAddress() and a component such as WalletAddressText or WalletAddressCell. Use it in members tables, activity actor/entity displays, member details, verification surfaces, and any future integration lookup UI. Include accessible labels, optional copy-to-clipboard, and full-address tooltips or titles.
Files or Areas Likely Affected
apps/dashboard/components/
apps/dashboard/lib/formatters/
apps/dashboard/app/members/page.tsx
apps/dashboard/app/activity/page.tsx
apps/dashboard/lib/mock-data.ts
apps/dashboard/test/
Acceptance Criteria
Additional Notes
This should only affect presentation. API payloads and repository records should continue storing full wallet addresses.
Difficulty: Advanced
Type: Refactor
Summary
Create reusable wallet address display components so wallet values are shown consistently, safely, and copyably across the dashboard.
Current Behaviour
The members page manually truncates wallet addresses using
slice(0, 6)andslice(-4). Other current or future dashboard surfaces may display wallets differently, leading to inconsistent formatting and weaker usability.Expected Behaviour
Wallet addresses should be displayed through a shared component that shortens long addresses, preserves access to the full value, supports copying, and handles invalid or missing wallet values gracefully.
Suggested Implementation
Add a utility such as
formatWalletAddress()and a component such asWalletAddressTextorWalletAddressCell. Use it in members tables, activity actor/entity displays, member details, verification surfaces, and any future integration lookup UI. Include accessible labels, optional copy-to-clipboard, and full-address tooltips or titles.Files or Areas Likely Affected
apps/dashboard/components/apps/dashboard/lib/formatters/apps/dashboard/app/members/page.tsxapps/dashboard/app/activity/page.tsxapps/dashboard/lib/mock-data.tsapps/dashboard/test/Acceptance Criteria
Additional Notes
This should only affect presentation. API payloads and repository records should continue storing full wallet addresses.