feat: better and centralized loading screen

This commit is contained in:
alzalia1 2025-08-12 23:59:13 +02:00
parent eb83e9fbe3
commit b751d93be6
11 changed files with 82 additions and 13 deletions

View file

@ -56,7 +56,13 @@ class HomeViewModel extends ChangeNotifier {
Future<Result<void>> _load() async {
final result2 = await _loadBal();
isLoaded = true;
switch (result2) {
case Ok():
isLoaded = true;
break;
default:
break;
}
notifyListeners();
return result2;
}

View file

@ -4,6 +4,7 @@ import 'package:seshat/domain/models/bal.dart';
import 'package:seshat/ui/core/ui/navigation_bar.dart';
import 'package:seshat/ui/home_page/view_model/home_view_model.dart';
import 'package:seshat/ui/home_page/widgets/create_confirmation_popup.dart';
import 'package:seshat/ui/core/ui/await_loading.dart';
class HomePage extends StatefulWidget {
const HomePage({super.key, required this.viewModel});
@ -23,7 +24,7 @@ class _HomePageState extends State<HomePage> {
listenable: widget.viewModel,
builder: (context, child) {
return switch (widget.viewModel.isLoaded) {
false => Center(child: CircularProgressIndicator()),
false => AwaitLoading(),
true => switch (widget.viewModel.currentBal == null) {
true => HomePageOnNoCurrent(widget: widget),
false => HomePageOnCurrent(widget: widget),