onNavigationEvent method

Future<void> onNavigationEvent({
  1. String? fromRoute,
  2. String? toRoute,
  3. Map<String, dynamic>? routeArguments,
})

Process navigation event and execute rules

Implementation

Future<void> onNavigationEvent({
  String? fromRoute,
  String? toRoute,
  Map<String, dynamic>? routeArguments,
}) async {
  if (!_engine.isActive) return;

  try {
    final navigationContext = NavigationContext(
      fromRoute: fromRoute,
      toRoute: toRoute,
      routeArguments: routeArguments,
    );

    final rulesContext = UIRulesContext(
      navigation: navigationContext,
      appContext: _appContext,
    );

    final result = await _engine.executeUIRules(rulesContext);
    await _processRulesResult(result);
  } catch (e) {
    ObslyLogger.error('Error executing navigation rules: $e');
  }
}