goNamed static method

void goNamed(
  1. GoRouter router,
  2. String name, {
  3. Map<String, String> pathParameters = const <String, String>{},
  4. Map<String, String> queryParameters = const <String, String>{},
  5. List<String> toggleModals = const <String>[],
  6. Object? extra,
})

If modal isn't explicitly in queryParameters, it's dropped from the current query params (so a modal can be closed by navigating away without re-specifying it). toggleModals toggles each id: closes it if currently open, opens it otherwise.

Implementation

static void goNamed(
  GoRouter router,
  String name, {
  Map<String, String> pathParameters = const <String, String>{},
  Map<String, String> queryParameters = const <String, String>{},
  List<String> toggleModals = const <String>[],
  Object? extra,
}) {
  final currentState = router.state;
  final currentUri = currentState.uri;

  final mergedQueryParams = mergeQueryParametersForGoNamed(
    currentQueryParams: currentUri.queryParameters,
    newQueryParams: queryParameters,
    toggleModals: toggleModals,
    currentUri: currentUri,
  );

  router.goNamed(
    name,
    pathParameters: pathParameters,
    queryParameters: mergedQueryParams,
    extra: extra ?? currentState.extra,
  );
}