toggleModalsInUri static method
Implementation
@visibleForTesting
static Uri toggleModalsInUri(Uri currentUri, List<String> modalIds) {
final currentModals = _getCurrentModals(currentUri);
final updatedModals = List<String>.from(currentModals);
for (final modalId in modalIds) {
if (updatedModals.contains(modalId)) {
updatedModals.remove(modalId);
} else {
updatedModals.add(modalId);
}
}
final updatedQueryParams = <String, String>{
for (final entry in currentUri.queryParameters.entries)
if (entry.key != 'modal') entry.key: entry.value,
};
if (updatedModals.isNotEmpty) {
updatedQueryParams['modal'] = updatedModals.join(',');
}
return Uri(
path: currentUri.path,
queryParameters: updatedQueryParams.isEmpty ? null : updatedQueryParams,
fragment: currentUri.fragment,
);
}