startPaynowPayment<E> function

Future<PaynowPaymentResult> startPaynowPayment<E>(
  1. BuildContext context, {
  2. required PaynowConfig paynowConfig,
  3. required CartRepository cartRepository,
  4. required PaynowPaymentInfo paynowPaymentInfo,
  5. required Widget onInitial(
    1. BuildContext context,
    2. PaynowInitialState initialState,
    3. List<PaynowCartItem> cart
    ),
  6. required Widget onPending(
    1. BuildContext context,
    2. PaynowPendingState pendingState,
    3. List<PaynowCartItem> cart
    ),
  7. required Widget onLoading(
    1. BuildContext context,
    2. PaynowLoadingState loadingState,
    3. List<PaynowCartItem> cart
    ),
  8. required Widget onSuccess(
    1. BuildContext context,
    2. PaynowSuccessState successState,
    3. List<PaynowCartItem> cart
    ),
  9. required Widget onFailed(
    1. BuildContext context,
    2. PaynowFailedState failedState,
    3. List<PaynowCartItem> cart
    ),
  10. required Widget checkoutButtonBuilder(
    1. BuildContext context,
    2. PaynowBloc paynowBloc,
    3. CartRepository cartRepository
    ),
  11. bool? forceWebView,
  12. bool? forceSafariVC,
})

A simplfied function to start the payment from UI layer

Implementation

Future<PaynowPaymentResult> startPaynowPayment<E>(
  BuildContext context,
  {
    required PaynowConfig paynowConfig,
    required CartRepository cartRepository,
    required PaynowPaymentInfo paynowPaymentInfo,
    required Widget Function(BuildContext context, PaynowInitialState initialState, List<PaynowCartItem> cart) onInitial,
    required Widget Function(BuildContext context, PaynowPendingState pendingState, List<PaynowCartItem> cart) onPending,
    required Widget Function(BuildContext context, PaynowLoadingState loadingState, List<PaynowCartItem> cart) onLoading,
    required Widget Function(BuildContext context, PaynowSuccessState successState, List<PaynowCartItem> cart) onSuccess,
    required Widget Function(BuildContext context, PaynowFailedState failedState, List<PaynowCartItem> cart) onFailed,
    required Widget Function(BuildContext context, PaynowBloc paynowBloc, CartRepository cartRepository) checkoutButtonBuilder,
    bool? forceWebView,
    bool? forceSafariVC,
  }
)async{
  final result = await Navigator.of(context).push(MaterialPageRoute(
    builder: (_)=>PaynowBuilder(
      paynowConfig: paynowConfig,
      paynowPaymentInfo: paynowPaymentInfo,
      cartRepository: cartRepository,
      onInitial: onInitial,
      onLoading: onLoading,
      onPending: onPending,
      onSuccess: onSuccess,
      onFailed: onFailed,
      checkoutButtonBuilder: checkoutButtonBuilder,
    )
  ));

  return result;

}