Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 8 additions & 9 deletions components/Card/NewCardDetails/EnableEuroSpendCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ interface EnableEuroSpendCardProps {
}

/**
* "Enable euro lending" — the card that opens the Base spend instance for a cohort user.
* "Enable euro spending" — the card that opens the Base spend instance for a cohort user.
*
* ## Who sees it, and when it goes away
*
Expand All @@ -21,28 +21,27 @@ interface EnableEuroSpendCardProps {
*
* ## A note on the copy
*
* The label says "lending", and at launch nothing is lent. The Base instance is dollar-denominated
* and EURC is configured `spendable: true, collateral: false` — borrowing against a balance whose
* dollar value moves with an exchange rate is a decision being taken separately, with its own risk
* parameters. What this actually enables is spending a euro balance. The wording is the product's
* and is kept, but it should not be read as describing a credit line, and it will be wrong in a
* way worth revisiting if EURC is ever promoted to collateral.
* "Spending", not "lending": nothing is lent, and lending is not planned. The Base instance is
* dollar-denominated and EURC is configured `spendable: true, collateral: false`, so what this
* enables is spending a euro balance. Revisit the copy only if EURC is ever promoted to collateral.
*
* Laid out as the "Spend mode" row is (`SpendingModeCard`): a 23px card, 17px side inset, label
* left and action right — so it reads as another row of the card pane rather than a promo banner.
*/
const EnableEuroSpendCard = ({ isEnabling, error, onEnable }: EnableEuroSpendCardProps) => (
<View className="overflow-hidden rounded-[23px] bg-card" style={styles.row}>
<View style={styles.label}>
<Text className="text-[18px] font-medium leading-[25px] text-white">Enable euro lending</Text>
<Text className="text-[18px] font-medium leading-[25px] text-white">
Enable euro spending
</Text>
<Text
className={`text-[14px] leading-[18px] ${error ? 'text-red-400' : 'text-muted-foreground'}`}
>
{error ?? 'Spend your EURC balance on Base'}
</Text>
</View>
<Pressable
accessibilityLabel="Enable euro lending"
accessibilityLabel="Enable euro spending"
accessibilityRole="button"
accessibilityState={{ disabled: isEnabling, busy: isEnabling }}
// Disabled while the user operation is in flight. Enabling twice would build a second batch
Expand Down
5 changes: 2 additions & 3 deletions hooks/useEuroSpendEnablement.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,9 +125,8 @@ interface EuroSpendEnablement {
* ## Note on the name
*
* The Base instance is **dollar-denominated**; EURC is a spendable asset within it and is
* explicitly not collateral at launch, so nothing here lends against euros. The copy this powers
* says "euro", which is what the user experiences — spending a euro balance — and is fine as long
* as nobody reads the code and concludes there is a euro credit line.
* not collateral, so nothing here lends against euros — and lending is not planned. The copy this
* powers says "euro spending", which is exactly what the user gets: spending a euro balance.
*/
export const useEuroSpendEnablement = (): EuroSpendEnablement => {
const { user, safeAA } = useUser();
Expand Down
Loading