wrap static method

Widget wrap(
  1. Widget app, {
  2. GlobalKey<NavigatorState>? navigatorKey,
  3. NavigationProvider? customNavigationProvider,
  4. EventController? eventController,
})

Wrap any Flutter app with Obsly functionality

Implementation

static Widget wrap(
  Widget app, {
  GlobalKey<NavigatorState>? navigatorKey,
  NavigationProvider? customNavigationProvider,
  EventController? eventController,
}) {
  final appType = _detectAppType(app);
  ObslyLogger.debug('Detected app type: $appType');

  switch (appType) {
    case AppType.materialApp:
      return _wrapMaterialApp(
        app as MaterialApp,
        navigatorKey: navigatorKey,
        eventController: eventController,
      );
    case AppType.cupertinoApp:
      return _wrapCupertinoApp(
        app as CupertinoApp,
        navigatorKey: navigatorKey,
        eventController: eventController,
      );
    case AppType.custom:
      return _wrapCustomApp(
        app,
        navigatorKey: navigatorKey,
        customNavigationProvider: customNavigationProvider,
        eventController: eventController,
      );
  }
}