accessActiveRouteParamsOfType<TRouteParam extends AFRouteParam> method
List<TRouteParam>
accessActiveRouteParamsOfType<TRouteParam extends AFRouteParam>({
- AFRouteLocation routeLocation = AFRouteLocation.screenHierarchy,
inherited
Find all route params that have the specified type.
Searches the active screen in the hierarchy, the children of that screen, and any currently showing UIs (dialogs, etc)
Implementation
List<TRouteParam> accessActiveRouteParamsOfType<TRouteParam extends AFRouteParam>({
AFRouteLocation routeLocation = AFRouteLocation.screenHierarchy
}) {
final route = accessPublicState.route;
final activeScreenId = route.activeScreenId;
final routeSeg = route.findRouteParamFull(
screenId: activeScreenId,
routeLocation: routeLocation,
wid: AFUIWidgetID.useScreenParam
);
final result = <TRouteParam>[];
final screenParam = routeSeg?.param;
if(screenParam is TRouteParam) {
result.add(screenParam);
}
final children = routeSeg?.children;
if(children != null) {
for(final childSeg in children.values) {
final childParam = childSeg.param;
if(childParam is TRouteParam) {
result.add(childParam);
}
}
}
for(final showingScreen in route.showingScreens.values) {
final screenId = showingScreen.screenId;
final screenSeg = route.findGlobalParam(screenId);
final showParam = screenSeg?.param;
if(showParam is TRouteParam) {
result.add(showParam);
}
}
return result;
}