BankTransferReviewCard class

Confirm-before-send summary card shown to the user before they authorise a transfer.

Displays the beneficiary, amount, fee, exchange rate (for international transfers), estimated arrival time, and an optional additionalInfo slot.

Hierarchy

The card carries three tiers, because a review screen has exactly one question to answer — am I sending the right money to the right place?

  1. The amount is the hero: a BankThemeData.numeralLarge figure under a caps micro-label, not one more label/value row. Set at the same optical weight as "Arrives", it forces the customer to read the whole card to find the number they came to check.
  2. The destination mask is a verification affordance, so it is set in tabular numerals at body size in the full BankThemeData.onSurface ink. A masked account nobody can read verifies nothing; this is the one caption-sized string on the card that must never be caption-sized.
  3. Everything else — fee, rate, arrival — recedes to small muted labels against body-size values.
BankTransferReviewCard(
  amount: Money.fromDouble(500, 'GBP'),
  beneficiary: selected,
  fee: Money.fromDouble(0, 'GBP'),
  estimatedArrival: 'Within 2 hours',
)
Inheritance

Constructors

BankTransferReviewCard({required Money amount, required BankBeneficiary beneficiary, Key? key, Money? fee, ExchangeRate? exchangeRate, String? estimatedArrival, bool isScheduled = false, DateTime? scheduledDate, Widget? additionalInfo, EdgeInsetsGeometry? padding, BorderRadius? radius, Color? backgroundColor, double? elevation, List<BoxShadow>? shadow, BoxBorder? border, Widget? header, TextStyle? titleStyle, TextStyle? subtitleStyle, TextStyle? maskStyle, TextStyle? labelStyle, TextStyle? valueStyle, TextStyle? amountStyle, String amountLabel = 'Amount', String feeLabel = 'Fee', String freeLabel = 'Free', String exchangeRateLabel = 'Exchange Rate', String youSendLabel = 'You send', String theyReceiveLabel = 'They receive', String arrivesLabel = 'Arrives', String scheduledPrefix = 'Scheduled:', String noArrivalLabel = '-', IconData? verifiedIcon, Color? accentColor, Color? freeColor, String? semanticLabel})
const

Properties

accentColor Color?
Overrides the accent of the avatar fallback and verified badge. Defaults to the theme primary.
final
additionalInfo Widget?
Optional widget rendered below the summary rows: use for disclaimers, T&C links, or exchange-rate freshness notes.
final
amount Money
The amount being sent.
final
amountLabel String
Label of the hero amount block, rendered as an ALL-CAPS micro-label. Defaults to 'Amount'.
final
amountStyle TextStyle?
Merged over the highlighted money styles of the hero amount (theme numeralLarge) and the "They receive" row (theme numeralMedium).
final
arrivesLabel String
Label of the arrival row. Defaults to 'Arrives'.
final
backgroundColor Color?
Overrides the card background color. Defaults to the theme surface.
final
beneficiary BankBeneficiary
The beneficiary receiving the transfer.
final
border BoxBorder?
Overrides the card outline. Defaults on dark surfaces to a BankTokens.hairlineWidth hairline in BankTokens.hairlineColor; light surfaces keep an invisible border of the same width. Pass const Border() to remove it.
final
elevation double?
Legacy depth opt-out. The card renders the kit shadow language (BankTokens.shadowCardFor of the theme background brightness) instead of Material elevation; pass 0 — or use a theme whose elevationLow is 0, such as Voltage — to flatten the card to hairline-only depth.
final
estimatedArrival String?
Human-readable estimated arrival string, e.g. 'Within 2 hours'. Ignored when isScheduled is true.
final
exchangeRate ExchangeRate?
Exchange rate for international transfers. When non-null, additional "You send" and "They receive" rows are rendered below the rate row.
final
exchangeRateLabel String
Label of the exchange-rate row. Defaults to 'Exchange Rate'.
final
fee Money?
Transfer fee. Pass null or a zero Money to show "Free".
final
feeLabel String
Label of the fee row. Defaults to 'Fee'.
final
freeColor Color?
Overrides the color of the free fee value. Defaults to the theme's BankThemeData.positiveBalance, which is brightness-corrected per preset — the raw token is a light-surface green.
final
freeLabel String
Value shown when the fee is zero or null. Defaults to 'Free'.
final
hashCode int
The hash code for this object.
no setterinherited
Replaces the beneficiary header row. Defaults to the built-in avatar-name-account header.
final
isScheduled bool
When true, the arrival row displays the scheduled date instead of estimatedArrival.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
labelStyle TextStyle?
Merged over each supporting row's label style (BankTokens.bodySmall in onSurfaceVariant).
final
maskStyle TextStyle?
Merged over the account-mask line (theme numeralSmall in onSurface).
final
noArrivalLabel String
Arrival value when no arrival information is available. Defaults to '-'.
final
padding EdgeInsetsGeometry?
Overrides the card content padding. Defaults to EdgeInsets.all(BankTokens.space4).
final
radius BorderRadius?
Overrides the card corner radius. Defaults to the theme cardRadius.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
scheduledDate DateTime?
The date the transfer is scheduled for. Only used when isScheduled is true.
final
scheduledPrefix String
Prefix of the scheduled arrival value. Defaults to 'Scheduled:'.
final
semanticLabel String?
When non-null, wraps the card in a Semantics label. Defaults to no extra semantics node.
final
shadow List<BoxShadow>?
Overrides the card shadow. Defaults to BankTokens.shadowCardFor of the theme background brightness; pass const [] to flatten.
final
subtitleStyle TextStyle?
Merged over the bank-name line under the account mask (BankTokens.bodySmall in onSurfaceVariant).
final
theyReceiveLabel String
Label of the converted-amount row. Defaults to 'They receive'.
final
titleStyle TextStyle?
Merged over the beneficiary name style (BankTokens.headlineSmall in onSurface).
final
valueStyle TextStyle?
Merged over each plain row value style (BankTokens.bodyMedium, w500).
final
verifiedIcon IconData?
Overrides the verified-beneficiary glyph. Defaults to Icons.verified_outlined.
final
youSendLabel String
Label of the sent-amount row. Defaults to 'You send'.
final

Methods

build(BuildContext context) Widget
Describes the part of the user interface represented by this widget.
override
createElement() StatelessElement
Creates a StatelessElement to manage this widget's location in the tree.
inherited
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited