onRequest method

  1. @override
Future<PageRequest?> onRequest(
  1. PageRequest pageRequest
)
override

Legacy method override for backward compatibility. Delegates to the new onBefore lifecycle method.

Implementation

@override
Future<PageRequest?> onRequest(PageRequest pageRequest) async {
  final routeContext = pageRequest.toRouteContext(routeName ?? '');
  setRouteContext(routeContext);
  final result = await onBefore(routeContext);

  if (result == GuardResult.handled) {
    if (_redirectConfig != null) {
      return PageRequest.redirect(
        _redirectConfig!.path,
        data: _redirectConfig!.data,
        queryParameters: _redirectConfig!.queryParameters,
        navigationType: _redirectConfig!.navigationType,
        result: _redirectConfig!.result,
        removeUntilPredicate: _redirectConfig!.removeUntilPredicate,
        onPop: _redirectConfig!.onPop,
      );
    }
    // Aborted without redirect
    return PageRequest()..isRedirect = true;
  }

  // Continue to next guard, possibly with modified data
  if (_hasModifiedData) {
    pageRequest.addData((_) => _modifiedData);
  }
  return null;
}