evaluate method
Implementation
Future<RouteBase?> evaluate(BuildContext context) async {
if (_initializedInstance != null) {
return _initializedInstance;
}
final value = (await condition?.execute(context)) ?? defaultCase;
final caseItem =
(cases ?? <CaseRouteItem>[]).firstWhereOrNull((x) => x.value == value);
final ref = caseItem?.item;
RouteBase? leafRoute;
if (ref != null) {
final route = await VyuhBinding.instance.content.provider
.fetchRoute(routeId: ref.ref);
if (!context.mounted) {
return null;
}
leafRoute = await route?.init(context);
}
_initializedInstance = leafRoute;
return _initializedInstance;
}