From 5779b2e0799c243b7f00da76c60d2dd81fdd17c2 Mon Sep 17 00:00:00 2001 From: Nikolas Rimikis Date: Thu, 15 Jun 2023 10:50:22 +0200 Subject: [PATCH] neon: refactor page loading --- packages/neon/neon/lib/neon.dart | 1 + packages/neon/neon/lib/src/pages/home.dart | 33 +++++++------------ packages/neon/neon/lib/src/pages/no_apps.dart | 16 +++++++++ 3 files changed, 28 insertions(+), 22 deletions(-) create mode 100644 packages/neon/neon/lib/src/pages/no_apps.dart 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, + ), + ); +}