showCardReceipt method
Future<void>
showCardReceipt({
- required BuildContext context,
- required TransactionDetailsSettings settings,
Shows the card payment receipt dialog.
Displays a modal dialog containing transaction details for card payments. Uses the Amwal SDK navigator and includes localization support.
Parameters:
context
: The build context for showing the dialogsettings
: Configuration for the transaction details display
Example:
await ReceiptHandler.instance.showCardReceipt(
context: context,
settings: TransactionDetailsSettings(
transactionId: 'TXN456',
amount: 250.0,
locale: Locale('en'),
),
);
Implementation
Future<void> showCardReceipt({
required BuildContext context,
required TransactionDetailsSettings settings,
}) async {
Logar.debug('showCardReceipt starting', tag: 'RECEIPT_HANDLER');
try {
final navigator = AmwalSdkNavigator.amwalNavigatorObserver.navigator;
Logar.debug(
'Navigator state',
tag: 'RECEIPT_HANDLER',
data: {'available': navigator != null},
);
if (navigator != null) {
Logar.debug('Pushing dialog route', tag: 'RECEIPT_HANDLER');
await Navigator.of(navigator.context).push(
DialogRoute(
context: navigator.context,
builder: (BuildContext context) {
Logar.debug(
'Building TransactionStatusDialog',
tag: 'RECEIPT_HANDLER',
);
return Localizations(
delegates:
AppLocalizationsSetup.localizationsDelegates.toList(),
locale: settings.locale,
child: TransactionStatusDialog(
settings: settings.copyWith(
onClose: () {
Logar.debug(
'Dialog closed, popping navigators',
tag: 'RECEIPT_HANDLER',
);
Navigator.pop(navigator.context);
Logar.info(
'Navigator popped from receipt handler context',
tag: 'NAVIGATION',
);
Navigator.pop(navigator.context);
Logar.info(
'Navigator popped from receipt handler context',
tag: 'NAVIGATION',
);
Navigator.pop(navigator.context);
Logar.info(
'Navigator popped from receipt handler context',
tag: 'NAVIGATION',
);
Logar.debug(
'All navigators popped',
tag: 'RECEIPT_HANDLER',
);
},
),
),
);
},
barrierDismissible: false,
),
);
Logar.debug('Dialog route pushed successfully', tag: 'RECEIPT_HANDLER');
} else {
Logar.warning('No navigator available', tag: 'RECEIPT_HANDLER');
}
} catch (e, stackTrace) {
Logar.error(
'showCardReceipt error',
tag: 'RECEIPT_HANDLER',
error: e,
stackTrace: stackTrace,
);
}
}