execute method

  1. @override
FutureOr<AWActions?> execute(
  1. AnyWidgetContext context,
  2. ActionPayload payload
)
override

Implementation

@override
FutureOr<AWActions?> execute(
    AnyWidgetContext context, ActionPayload payload) {
  if (!context.isMounted()) return null;
  return map(
    push: (value) {
      final state = Navigator.maybeOf(context.context,
          rootNavigator: value.rootNavigator ?? false);
      if (null == state) return null;
      return state.push<AWActions?>(value.route.toFlutter(context));
    },
    pop: (value) async {
      final state = Navigator.maybeOf(context.context,
          rootNavigator: value.rootNavigator ?? false);
      if (null == state) return;
      state.pop(value.actions);
    },
    maybePop: (value) async {
      final state = Navigator.maybeOf(context.context,
          rootNavigator: value.rootNavigator ?? false);
      if (null == state) return;
      await state.maybePop(value.actions);
    },
    pushReplacement: (value) async {
      final state = Navigator.maybeOf(context.context,
          rootNavigator: value.rootNavigator ?? false);
      if (null == state) return;
      await state.pushReplacement(
        value.route.toFlutter(context),
      );
    },
  );
}