diff --git a/lib/route.dart b/lib/route.dart index be0e6b08..8af066e9 100644 --- a/lib/route.dart +++ b/lib/route.dart @@ -1,6 +1,8 @@ +import 'dart:io' show Platform; import 'package:animations/animations.dart'; import 'package:firebase_analytics/firebase_analytics.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/foundation.dart' show kIsWeb; import 'package:go_router/go_router.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:island/screens/about.dart'; @@ -69,15 +71,22 @@ Widget _tabPagesTransitionBuilder( child: child, ); } +bool get _supportsAnalytics => + kIsWeb || Platform.isAndroid || Platform.isIOS; // Provider for the router final routerProvider = Provider((ref) { + final observers = []; + + if (_supportsAnalytics) { + final analytics = FirebaseAnalytics.instance; + observers.add(FirebaseAnalyticsObserver(analytics: analytics)); + } + return GoRouter( navigatorKey: rootNavigatorKey, initialLocation: '/', - observers: [ - FirebaseAnalyticsObserver(analytics: FirebaseAnalytics.instance), - ], + observers: observers, routes: [ ShellRoute( navigatorKey: _shellNavigatorKey,