open static method

Future<void> open([
  1. BuildContext? context
])

Opens the log page. Does nothing if it is already open.

Implementation

static Future<void> open([BuildContext? context]) async {
  if (!ReleaseGuard.allowed) return;
  if (isOpenNotifier.value || observer.hasActiveRoute) return;

  final navigator = _resolveNavigator(context);
  if (navigator == null) {
    assert(() {
      debugPrint(
        'DioDebugLogger: Navigator not found. Pass a BuildContext, add '
        '`DioDebugLogger.observer` to `MaterialApp.navigatorObservers` or '
        'set `DioDebugLogger.navigatorKey`.',
      );
      return true;
    }());
    return;
  }

  isOpenNotifier.value = true;
  try {
    await navigator.push<void>(
      MaterialPageRoute<void>(
        settings: const RouteSettings(name: routeName),
        builder: (_) => const DebugPage(),
      ),
    );
  } finally {
    isOpenNotifier.value = false;
  }
}