switchToGoRouter method

Future<void> switchToGoRouter(
  1. dynamic routerDelegate, {
  2. String? caller,
})

Switch to GoRouter provider and attach to RouterDelegate

Implementation

Future<void> switchToGoRouter(dynamic routerDelegate,
    {String? caller}) async {
  if (!_isActive) {
    ObslyLogger.warn(
        'πŸ”₯ GOROUTER_IMPL: NavigationIntegrationV2 not initialized');
    return;
  }

  // Check if already switched to GoRouter
  if (goRouterNavigatorProvider != null) {
    ObslyLogger.debug(
        'πŸ”₯ GOROUTER_IMPL: Already using GoRouter provider, skipping switchToGoRouter');
    return;
  }

  ObslyLogger.debug(
      'πŸ”₯ GOROUTER_IMPL: switchToGoRouter called with: ${routerDelegate?.runtimeType} FROM: ${caller ?? "UNKNOWN"}');

  await _switchProvider(NavigationProviderType.goRouter);

  final goRouterProvider = goRouterNavigatorProvider;
  if (goRouterProvider != null && routerDelegate != null) {
    ObslyLogger.debug(
        'πŸ”₯ GOROUTER_IMPL: Attaching RouterDelegate to GoRouterProvider...');
    goRouterProvider.attachToRouter(routerDelegate);
    ObslyLogger.debug(
        'πŸ”₯ GOROUTER_IMPL: βœ… NavigationIntegrationV2 switched to GoRouter with RouterDelegate');
  } else {
    ObslyLogger.warn(
        'πŸ”₯ GOROUTER_IMPL: ❌ Cannot attach - goRouterProvider: $goRouterProvider, routerDelegate: $routerDelegate');
  }
}