prompt method
Future<RaveResult?>
prompt({
- required BuildContext context,
- required RavePayInitializer initializer,
Prompts the customer to input payment details if the correct parameters are passed.
context
Your immediate build context.
initializer
Container for the transaction parameters
Please, enable embedded_views_preview on iOS. See https://stackoverflow.com/a/55290868/6181476
Implementation
Future<RaveResult?> prompt({
required BuildContext context,
required RavePayInitializer initializer,
}) async {
assert(context != null);
assert(initializer != null);
// Validate the initializer params
var error = ValidatorUtils.validateInitializer(initializer);
if (error != null) {
return RaveResult(
status: RaveStatus.error,
rawResponse: {'error': error},
message: error);
}
Repository.bootStrap(initializer);
var result = showDialog<RaveResult>(
context: context,
barrierDismissible: false,
builder: (_) => Theme(
data: _getDefaultTheme(context),
child: RavePayWidget(),
),
);
// Return a cancelled response if result is null
return result == null ? RaveResult(status: RaveStatus.cancelled) : result as FutureOr<RaveResult?>; //FutureOr<RaveResult>
}