diff --git a/packages/neon/neon/lib/neon.dart b/packages/neon/neon/lib/neon.dart index a2093959..5ca5c77a 100644 --- a/packages/neon/neon/lib/neon.dart +++ b/packages/neon/neon/lib/neon.dart @@ -24,6 +24,7 @@ import 'package:neon/l10n/localizations.dart'; import 'package:neon/src/blocs/blocs.dart'; import 'package:neon/src/models/account.dart'; import 'package:neon/src/models/push_notification.dart'; +import 'package:neon/src/pages/no_apps.dart'; import 'package:neon/src/router.dart'; import 'package:neon/src/widgets/drawer.dart'; import 'package:neon/src/widgets/drawer_destination.dart'; diff --git a/packages/neon/neon/lib/src/pages/home.dart b/packages/neon/neon/lib/src/pages/home.dart index 9eef37df..e8df2256 100644 --- a/packages/neon/neon/lib/src/pages/home.dart +++ b/packages/neon/neon/lib/src/pages/home.dart @@ -277,28 +277,17 @@ class _HomePageState extends State { ); Widget body = Builder( - builder: (final context) => Column( - children: [ - if (appImplementations.data != null) ...[ - if (appImplementations.data!.isEmpty) ...[ - Expanded( - child: Center( - child: Text( - AppLocalizations.of(context).errorNoCompatibleNextcloudAppsFound, - textAlign: TextAlign.center, - ), - ), - ), - ] else ...[ - if (activeAppIDSnapshot.hasData) ...[ - Expanded( - child: appImplementations.data!.find(activeAppIDSnapshot.data!)!.page, - ), - ], - ], - ], - ], - ), + builder: (final context) { + if (appImplementations.data == null) { + return const SizedBox.shrink(); + } + + if (appImplementations.data!.isEmpty) { + return const NoAppsPage(); + } + + return appImplementations.data!.find(activeAppIDSnapshot.data!)!.page; + }, ); body = MultiProvider( diff --git a/packages/neon/neon/lib/src/pages/no_apps.dart b/packages/neon/neon/lib/src/pages/no_apps.dart new file mode 100644 index 00000000..ca7a9a83 --- /dev/null +++ b/packages/neon/neon/lib/src/pages/no_apps.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; +import 'package:meta/meta.dart'; +import 'package:neon/l10n/localizations.dart'; + +@internal +class NoAppsPage extends StatelessWidget { + const NoAppsPage({super.key}); + + @override + Widget build(final BuildContext context) => Center( + child: Text( + AppLocalizations.of(context).errorNoCompatibleNextcloudAppsFound, + textAlign: TextAlign.center, + ), + ); +}