findRouteSegment method

AFRouteSegment? findRouteSegment(
  1. AFState state,
  2. AFScreenID parentScreen,
  3. AFWidgetID wid, {
  4. required TRouteParam? launchParam,
})
inherited

Find the route parameter for the specified named screen

Implementation

AFRouteSegment? findRouteSegment(AFState state, AFScreenID parentScreen, AFWidgetID wid, { required TRouteParam? launchParam }) {
  final route = state.public.route;
  if(launchParam != null) {
    if(launchParam is AFRouteParamRef) {
      return route.findRouteParamFull(screenId: launchParam.screenId, wid: launchParam.wid, routeLocation: launchParam.routeLocation);
    } else if(launchParam is AFRouteParamUnused) {
      return route.findUnusedParam();
    }
  }
  if(wid == AFUIWidgetID.unused) {
    return route.findUnusedParam();
  }

  var seg = route.findRouteParamFull(
    screenId: parentScreen,
    wid: wid,
    routeLocation: AFRouteLocation.screenHierarchy,
    includePrior: true
  );
  seg ??= _createDefaultRouteSegment(screenId: parentScreen, newParam: null, launchParam: launchParam);
  return seg;
}