diff --git a/lib/application/outlet/selected_outlet/selected_outlet_bloc.dart b/lib/application/outlet/selected_outlet/selected_outlet_bloc.dart index 77682f3..641fc25 100644 --- a/lib/application/outlet/selected_outlet/selected_outlet_bloc.dart +++ b/lib/application/outlet/selected_outlet/selected_outlet_bloc.dart @@ -22,14 +22,29 @@ class SelectedOutletBloc Future _onSelectedOutletEvent( SelectedOutletEvent event, Emitter emit, - ) { + ) { return event.map( loaded: (e) async { final savedId = _localDataProvider.getSelectedOutletId(); - emit(state.copyWith(selectedOutletId: savedId)); + final savedName = _localDataProvider.getSelectedOutletName(); + + if (savedId != null && savedName != null) { + emit( + state.copyWith( + selectedOutletId: savedId, + selectedOutlet: Outlet.empty().copyWith( + id: savedId, + name: savedName, + ), + ), + ); + } else { + emit(state.copyWith(selectedOutletId: savedId)); + } }, selected: (e) async { await _localDataProvider.saveSelectedOutletId(e.outlet.id); + await _localDataProvider.saveSelectedOutletName(e.outlet.name); emit( state.copyWith( selectedOutlet: e.outlet, diff --git a/lib/common/constant/local_storage_key.dart b/lib/common/constant/local_storage_key.dart index 06f4f98..c8b58cb 100644 --- a/lib/common/constant/local_storage_key.dart +++ b/lib/common/constant/local_storage_key.dart @@ -3,4 +3,5 @@ class LocalStorageKey { static const String token = 'token'; static const String user = 'user'; static const String selectedOutletId = 'selected_outlet_id'; + static const String selectedOutletName = 'selected_outlet_name'; } diff --git a/lib/infrastructure/outlet/datasource/local_data_provider.dart b/lib/infrastructure/outlet/datasource/local_data_provider.dart index 8fe1b93..fdd5be3 100644 --- a/lib/infrastructure/outlet/datasource/local_data_provider.dart +++ b/lib/infrastructure/outlet/datasource/local_data_provider.dart @@ -16,11 +16,23 @@ class OutletLocalDataProvider { ); } + Future saveSelectedOutletName(String outletName) async { + await _sharedPreferences.setString( + LocalStorageKey.selectedOutletName, + outletName, + ); + } + String? getSelectedOutletId() { return _sharedPreferences.getString(LocalStorageKey.selectedOutletId); } + String? getSelectedOutletName() { + return _sharedPreferences.getString(LocalStorageKey.selectedOutletName); + } + Future deleteSelectedOutletId() async { await _sharedPreferences.remove(LocalStorageKey.selectedOutletId); + await _sharedPreferences.remove(LocalStorageKey.selectedOutletName); } } diff --git a/lib/presentation/pages/home/widgets/stats.dart b/lib/presentation/pages/home/widgets/stats.dart index b63b0a1..820719f 100644 --- a/lib/presentation/pages/home/widgets/stats.dart +++ b/lib/presentation/pages/home/widgets/stats.dart @@ -44,7 +44,7 @@ class HomeStats extends StatelessWidget { icon: Icons.hexagon_outlined, iconColor: const Color(0xFF4CAF50), blobColor: const Color(0xFF4CAF50), - value: '0', // TODO: connect items sold data + value: overview.totalItemSold.toString(), label: context.lang.items_sold, ), ), @@ -58,7 +58,7 @@ class HomeStats extends StatelessWidget { icon: Icons.warning_amber_rounded, iconColor: const Color(0xFFFF9800), blobColor: const Color(0xFFFF9800), - value: '0', // TODO: connect low stock data + value: overview.totalLowStock.toString(), label: context.lang.low_stock_warning, ), ), @@ -68,7 +68,7 @@ class HomeStats extends StatelessWidget { icon: Icons.hexagon_outlined, iconColor: const Color(0xFFE53935), blobColor: const Color(0xFFE53935), - value: '0', // TODO: connect active products data + value: overview.totalProductActive.toString(), label: context.lang.active_products, ), ),