diff --git a/src/components/account/accounts-carousel.tsx b/src/components/account/accounts-carousel.tsx
index 220875f..3944baf 100644
--- a/src/components/account/accounts-carousel.tsx
+++ b/src/components/account/accounts-carousel.tsx
@@ -2,6 +2,7 @@ import { Plus } from 'lucide-react';
import { useTranslation } from 'react-i18next';
import type { Account } from '~/domain/accounts/types';
import { formatCOP, formatUSD, sortBalancesForDisplay } from '~/lib/formatters';
+import { cn } from '~/lib/utils';
import { getProductKindIcon } from './product-presentation';
function formatAccountBalanceChip(asset: string, current: string): string {
@@ -61,10 +62,18 @@ export function AccountsCarousel({
accounts,
onSelectAccount,
onAddAccount,
+ highlightAdd = false,
}: {
accounts: Account[];
onSelectAccount: (urn: string) => void;
onAddAccount: () => void;
+ /**
+ * Highlights the "+ new account" card to guide a genuinely accountless
+ * user there. Callers must gate this on their accounts query having
+ * settled — `accounts` reads as `[]` while it's still loading too, and
+ * that must not read as "confirmed empty" (see BQE-2653).
+ */
+ highlightAdd?: boolean;
}) {
const { t } = useTranslation();
return (
@@ -83,13 +92,34 @@ export function AccountsCarousel({
-
- {t('topup.amountStep.pseDisclaimer')}
-
+ {disclaimer !== null && (
+
+ {disclaimer ?? t('topup.amountStep.pseDisclaimer')}
+
+ )}
);
}
diff --git a/src/routes/_authed/topup/-components/us-amount-step.tsx b/src/routes/_authed/topup/-components/us-amount-step.tsx
index b004a36..93f3482 100644
--- a/src/routes/_authed/topup/-components/us-amount-step.tsx
+++ b/src/routes/_authed/topup/-components/us-amount-step.tsx
@@ -1,5 +1,6 @@
'use client';
+import { ArrowLeft } from 'lucide-react';
import { useTranslation } from 'react-i18next';
import { Button } from '~/components/ui/button';
import { Input } from '~/components/ui/input';
@@ -18,6 +19,7 @@ interface UsAmountStepProps {
ratioLabel: string;
} | null;
onAmountChange: (v: string) => void;
+ onBack?: () => void;
onNext: () => void;
}
@@ -31,6 +33,7 @@ export function UsAmountStep({
rateError,
rateSummary,
onAmountChange,
+ onBack,
onNext,
}: UsAmountStepProps) {
const { t } = useTranslation();
@@ -39,6 +42,17 @@ export function UsAmountStep({
return (
+ {onBack && (
+
+
+ {t('common.back')}
+
+ )}
+