Problem
Three issues affect the AccountScreen refresh UX, loading coordination, and empty state design.
1. AccountScreen "Refresh" button has no loading indicator while refreshing
After refreshAccount() is called, the button shows no spinner or disabled state. Users click it repeatedly not knowing if the refresh started. The button should show a loading state using the existing Button loading prop while isLoadingAccount is true.
2. AccountScreen does not show a last-refreshed timestamp
After a manual refresh, there is no indication of when the data was last fetched. Users who want to confirm data is up-to-date have no feedback. A "Last updated: just now" label below the refresh button would provide this.
3. AccountScreen "No assets found" empty state has no action
BalanceList shows "No assets found" when connected but has zero balances. There is no call-to-action — e.g. a link to the Stellar Friendbot (on testnet) to fund the account with test XLM.
Solution
- Disable the Refresh button and show a spinner (
loading={isLoadingAccount}) while refreshing.
- Store
lastRefreshed: Date | null in AccountScreen state, update it after refreshAccount resolves, and render a relative timestamp.
- When
network.name === "testnet" and balances.length === 0, render a "Fund with Friendbot" link.
Acceptance Criteria
Note for Contributors: Write a clear PR description. Include screenshots of the loading button state and the Friendbot link on testnet.
Problem
Three issues affect the
AccountScreenrefresh UX, loading coordination, and empty state design.1.
AccountScreen"Refresh" button has no loading indicator while refreshingAfter
refreshAccount()is called, the button shows no spinner or disabled state. Users click it repeatedly not knowing if the refresh started. The button should show a loading state using the existingButtonloadingprop whileisLoadingAccountis true.2.
AccountScreendoes not show a last-refreshed timestampAfter a manual refresh, there is no indication of when the data was last fetched. Users who want to confirm data is up-to-date have no feedback. A "Last updated: just now" label below the refresh button would provide this.
3.
AccountScreen"No assets found" empty state has no actionBalanceListshows "No assets found" when connected but has zero balances. There is no call-to-action — e.g. a link to the Stellar Friendbot (on testnet) to fund the account with test XLM.Solution
loading={isLoadingAccount}) while refreshing.lastRefreshed: Date | nullinAccountScreenstate, update it afterrefreshAccountresolves, and render a relative timestamp.network.name === "testnet"andbalances.length === 0, render a "Fund with Friendbot" link.Acceptance Criteria
isLoadingAccountis truenpm run buildpasses