Start to build synchronization logic
This commit is contained in:
		@@ -4,6 +4,9 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
 | 
			
		||||
import 'package:moneymgr_mobile/services/router/routes_list.dart';
 | 
			
		||||
import 'package:moneymgr_mobile/services/storage/expenses.dart';
 | 
			
		||||
import 'package:moneymgr_mobile/utils/time_utils.dart';
 | 
			
		||||
import 'package:moneymgr_mobile/widgets/full_screen_error.dart';
 | 
			
		||||
import 'package:moneymgr_mobile/widgets/loading_scaffold.dart';
 | 
			
		||||
import 'package:moneymgr_mobile/widgets/synchronize_button.dart';
 | 
			
		||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
 | 
			
		||||
 | 
			
		||||
part 'scans_list_screen.g.dart';
 | 
			
		||||
@@ -20,14 +23,21 @@ class ScansListScreen extends HookConsumerWidget {
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context, WidgetRef ref) {
 | 
			
		||||
    final expensesList = ref.watch(_expensesListProvider);
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      appBar: AppBar(title: Text("Expenses")),
 | 
			
		||||
      body: switch (expensesList) {
 | 
			
		||||
        AsyncData(:final value) => _ExpensesList(list: value),
 | 
			
		||||
        AsyncError(:final error) => Center(child: Text('Load error: $error')),
 | 
			
		||||
        _ => const Center(child: CircularProgressIndicator()),
 | 
			
		||||
      },
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    return switch (expensesList) {
 | 
			
		||||
      AsyncData(:final value) => Scaffold(
 | 
			
		||||
        appBar: AppBar(
 | 
			
		||||
          title: Text("Expenses"),
 | 
			
		||||
          actions: [value.isEmpty ? Container() : SynchronizeButton()],
 | 
			
		||||
        ),
 | 
			
		||||
        body: _ExpensesList(list: value),
 | 
			
		||||
      ),
 | 
			
		||||
      AsyncError(:final error) => FullScreenError(
 | 
			
		||||
        message: "Failed to load the list of expenses",
 | 
			
		||||
        error: error.toString(),
 | 
			
		||||
      ),
 | 
			
		||||
      _ => const LoadingScaffold(title: "Expenses"),
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user