fix: show loading spinner instead of clickable claim button during data fetch #620
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #614
When switching networks (e.g., from CELO to XDC), the
claimedstate resets toundefinedwhile new claim data loads from the smart contract. The existing render logic usedclaimed ? <ClaimBalance> : <ClaimButton>, which treatedundefinedas falsy — rendering an active, blue "Claim Now" button that does nothing when clicked.Root Cause
claimedis typed asboolean | undefined. JavaScript's falsy evaluation in the ternary operator doesn't distinguish betweenfalse(data loaded, user hasn't claimed) andundefined(data still loading).Fix
Added an explicit
claimed === undefinedcheck before the existing ternary to display a loadingSpinner(using the existingvariant="page-loader"pattern from the codebase) until claim data is available.Before:
After:
Changes
src/pages/gd/Claim/OldClaim.tsx: AddedSpinnerto native-base import, added loading state guard (6 lines changed)Test Plan
Made with Cursor
Summary by Sourcery
Bug Fixes: