import 'package:auto_route/auto_route.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_undraw/flutter_undraw.dart'; import 'package:shadcn_flutter/shadcn_flutter.dart'; import 'package:shadcn_flutter/shadcn_flutter_extension.dart'; import 'package:spotube/collections/routes.gr.dart'; import 'package:spotube/extensions/context.dart'; import 'package:spotube/provider/authentication/authentication.dart'; import 'package:spotube/utils/platform.dart'; class AnonymousFallback extends ConsumerWidget { final Widget? child; const AnonymousFallback({ super.key, this.child, }); @override Widget build(BuildContext context, ref) { final isLoggedIn = ref.watch(authenticationProvider); if (isLoggedIn.isLoading) { return const Center(child: CircularProgressIndicator()); } if (isLoggedIn.asData?.value != null && child != null) return child!; return Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, spacing: 10, children: [ Undraw( illustration: kIsMobile ? UndrawIllustration.accessDenied : UndrawIllustration.secureLogin, height: 200 * context.theme.scaling, color: context.theme.colorScheme.primary, ), Text(context.l10n.not_logged_in), Button.primary( child: Text(context.l10n.login_with_spotify), onPressed: () => context.navigateTo(const SettingsRoute()), ) ], ), ); } }