Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
|
||
| // Visible tabs - these are the main navigation tabs | ||
| const VISIBLE_TAB_NAMES = ['index', 'savings', 'card', 'activity']; | ||
| const VISIBLE_TAB_NAMES = ['index', 'savings', Platform.OS === 'ios' ? null : 'card', 'activity']; |
There was a problem hiding this comment.
Array contains null value on iOS
Low Severity
The VISIBLE_TAB_NAMES array includes null when Platform.OS === 'ios', creating an array like ['index', 'savings', null, 'activity']. While this doesn't cause runtime errors (since route.name won't match null), it's semantically incorrect and adds unnecessary overhead. The array should either be constructed conditionally or filtered with .filter(Boolean) to remove falsy values.
| > | ||
| <Text className="text-base font-bold text-black">Done</Text> | ||
| </Button> | ||
| )} |
There was a problem hiding this comment.
Minimum withdrawal threshold traps user funds
High Severity
The withdraw button now only appears when parseFloat(availableBalance) >= 1, replacing the previous behavior where the button was always visible but disabled when balance was zero or less. Users with balances between $0 and $1 (e.g., $0.50) cannot withdraw their funds because the withdraw button is hidden and replaced with a "Done" button that only closes the modal, effectively trapping their money.
| onSuccess?: () => void; | ||
| }; | ||
|
|
||
| export default function BridgeKyc({ onSuccess }: BridgeKycParams = {}) { |
There was a problem hiding this comment.
Route component accepts props that are never passed
Low Severity
BridgeKyc is an Expo Router page component but declares an onSuccess prop via BridgeKycParams. Expo Router renders route components without custom props, so onSuccess will always be undefined (from the default = {}). The onSuccess?.() call on completion will never execute, and onSuccess is incorrectly listed in the useEffect dependency array, which could cause unnecessary re-runs if the reference were ever non-stable.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
| <View className="flex-shrink-0 flex-row items-center gap-2 md:gap-10"> | ||
| <Text className={`text-right font-bold text-white`}> | ||
| {formatCardAmountWithCurrency(item.amount, item.currency)} | ||
| {formatCardAmountWithCurrency(item.amount, item.currency, provider)} |
There was a problem hiding this comment.
Rain card amounts shown as cents while provider loads
Medium Severity
formatCardAmountWithCurrency and formatCardAmount receive provider from useCardProvider, which can be null while loading. When provider is null, normalizeCardAmount skips the Rain cents-to-dollars division, causing Rain card transactions to display raw cent values as dollar amounts (e.g., $1234.00 instead of $12.34) until the provider resolves.
Additional Locations (1)
|
You have run out of free Bugbot PR reviews for this billing cycle. This will reset on March 24. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |
6 similar comments
|
You have run out of free Bugbot PR reviews for this billing cycle. This will reset on March 24. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |
|
You have run out of free Bugbot PR reviews for this billing cycle. This will reset on March 24. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |
|
You have run out of free Bugbot PR reviews for this billing cycle. This will reset on March 24. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |
|
You have run out of free Bugbot PR reviews for this billing cycle. This will reset on March 24. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |
|
You have run out of free Bugbot PR reviews for this billing cycle. This will reset on March 24. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |
|
You have run out of free Bugbot PR reviews for this billing cycle. This will reset on March 24. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |
|
@claude Review this |
|
Claude finished @LiorAgnin's task in 4m 1s —— View job PR Review —
|


Note
High Risk
Updates KYC and card funding/management flows across web and native (including new third-party SDKs and iOS extension targets), which are user-verification and payments-adjacent paths with higher regression risk.
Overview
Adds multi-provider card support (Bridge vs Rain) across the app, including provider-aware formatting, deposit address selection (contracts vs
funding_instructions), card status routing, and gating of actions like deposit/withdraw/freeze/PIN management based on provider and customer/KYC state.Reworks KYC: replaces the existing Persona-based
kycflow with Didit (newkyc.native.tsxfor mobile and updated web embedding), and adds a separatebridge-kycPersona page for Bridge-only KYC; card KYC entry now redirects to the correct provider flow.Introduces MeaWallet MPP integration and iOS Wallet Extensions (new extension entrypoints + docs), adds registry/config plumbing (
.npmrc,meawallet/mea_configignore, Expo plugins + EAS extension provisioning), and removes Fingerprint.com usage/envs and signup fingerprint collection. Also adds a hiddensavings-oldroute for side-by-side savings calculation comparison and minor home/coin chart UX/data-fetch adjustments (spin-and-win card, CoinGecko native token charting, savings summary backend hook).Written by Cursor Bugbot for commit 1f5b304. This will update automatically on new commits. Configure here.