goNamedWithCloseModal static method
void
goNamedWithCloseModal(})
Closes modalIds and navigates to name as a single atomic step.
Implementation
static void goNamedWithCloseModal(
GoRouter router,
String name, {
required List<String> modalIds,
Map<String, String> pathParameters = const <String, String>{},
Map<String, String> queryParameters = const <String, String>{},
Object? extra,
}) {
final currentState = router.state;
var currentLocation = currentState.uri;
for (final modalId in modalIds) {
currentLocation = closeModalInUri(currentLocation, modalId);
}
final updatedQueryParams = <String, String>{
for (final entry in currentLocation.queryParameters.entries)
if (entry.key != 'modal') entry.key: entry.value,
...queryParameters,
if (currentLocation.queryParameters.containsKey('modal') && !queryParameters.containsKey('modal'))
'modal': currentLocation.queryParameters['modal']!,
};
goNamed(router, name, pathParameters: pathParameters, queryParameters: updatedQueryParams, extra: extra);
}