popToFirst<T extends RouteParams?> method
Future<void>
popToFirst<T extends RouteParams?>({
- List<
T> args = const [], - RouteSettings? settings,
Implementation
Future<void> popToFirst<T extends RouteParams?>({
List<T> args = const [],
RouteSettings? settings,
}) async {
final popParams = getArgumentAndClean<_PopParam>(
settings: settings,
)?.popParams;
if (!navigate.canPop()) {
await pushNamed<T>(
BrowserConfig.of(this).defaultRoute.path,
args: [
...args,
if (popParams is T) popParams,
],
);
return;
}
return navigate.popUntil((route) {
if (route.isFirst) {
if (route.settings.arguments is Map) {
_createArguments([...args, popParams]).forEach(
(key, value) {
(route.settings.arguments! as Map).update(
key,
(value) => value,
ifAbsent: () => value,
);
},
);
}
return true;
} else {
return false;
}
});
}