@@ -8,7 +8,9 @@ import 'package:moneyplus/design_system/widgets/app_empty_view.dart';
88import 'package:moneyplus/design_system/widgets/app_error_view.dart' ;
99import 'package:moneyplus/design_system/widgets/app_loading_indicator.dart' ;
1010import 'package:moneyplus/presentation/statistics/widgets/CategoryBreakdown.dart' ;
11+ import 'package:moneyplus/presentation/transactions/screen/transactions_screen.dart' ;
1112
13+ import '../transactions/widget/add_transaction_bottom_sheet.dart' ;
1214import '../widgets/drop_down_date_dialog.dart' ;
1315import 'cubit/statistics_cubit.dart' ;
1416import 'cubit/statistics_state.dart' ;
@@ -35,7 +37,7 @@ class StatisticsView extends StatefulWidget {
3537
3638class _StatisticsViewState extends State <StatisticsView > {
3739 void _onAddTransaction () {
38- // Navigate to add transaction
40+ showAddTransactionBottomSheet (context);
3941 }
4042
4143 void _onRetry () {
@@ -44,22 +46,32 @@ class _StatisticsViewState extends State<StatisticsView> {
4446
4547 @override
4648 Widget build (BuildContext context) {
49+ final state = context.watch <StatisticsCubit >().state;
50+ final l10n = context.localizations;
51+
4752 return Scaffold (
4853 backgroundColor: context.colors.surface,
54+ appBar: CustomAppBar (
55+ title: l10n.statistics,
56+ trailing: switch (state) {
57+ StatisticsSuccess (: final selectedMonth) => DropDownDateDialog (
58+ onDatePick: (date) => context.read <StatisticsCubit >().changeMonth (date),
59+ year: selectedMonth.year,
60+ month: selectedMonth.month,
61+ ),
62+ _ => null ,
63+ },
64+ ),
4965 body: SafeArea (
50- child: BlocBuilder <StatisticsCubit , StatisticsState >(
51- builder: (context, state) {
52- return switch (state) {
53- StatisticsIdle () => const SizedBox .shrink (),
54- StatisticsLoading () => const AppLoadingIndicator (),
55- StatisticsSuccess () => _buildSuccess (context, state),
56- StatisticsFailure (: final message) => AppErrorView (
57- message: message,
58- onRetry: _onRetry,
59- ),
60- };
61- },
62- ),
66+ child: switch (state) {
67+ StatisticsIdle () => const SizedBox .shrink (),
68+ StatisticsLoading () => const AppLoadingIndicator (),
69+ StatisticsSuccess () => _buildSuccess (context, state),
70+ StatisticsFailure (: final message) => AppErrorView (
71+ message: message,
72+ onRetry: _onRetry,
73+ ),
74+ },
6375 ),
6476 );
6577 }
@@ -77,24 +89,17 @@ class _StatisticsViewState extends State<StatisticsView> {
7789 }
7890
7991 return SingleChildScrollView (
80- padding: const EdgeInsets .all (16 ),
81- child: Column (
82- children: [
83- CustomAppBar (
84- title: l10n.statistics,
85- trailing: DropDownDateDialog (
86- onDatePick: (date) => {
87- context.read <StatisticsCubit >().changeMonth (date),
88- },
89- year: state.selectedMonth.year,
90- month: state.selectedMonth.month,
91- ),
92- ),
92+ child: Padding (
93+ padding: const EdgeInsets .all (16.0 ),
94+ child: Column (
95+ children: [
9396 MonthlyOverviewSection (overview: state.monthlyOverview),
97+ const SizedBox (height: 16 ),
9498 CategoryBreakdownWidget (
9599 categoriesBreakdown: state.categoriesBreakdown,
96100 ),
97- ],
101+ ],
102+ ),
98103 ),
99104 );
100105 }
0 commit comments