feat: update home ui
Some checks are pending
Build & Deploy iOS to TestFlight / build-and-deploy (push) Waiting to run

This commit is contained in:
Efril 2026-06-23 23:33:10 +07:00
parent 8d801e52d9
commit b07af60778
4 changed files with 33 additions and 5 deletions

View File

@ -22,14 +22,29 @@ class SelectedOutletBloc
Future<void> _onSelectedOutletEvent(
SelectedOutletEvent event,
Emitter<SelectedOutletState> 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,

View File

@ -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';
}

View File

@ -16,11 +16,23 @@ class OutletLocalDataProvider {
);
}
Future<void> 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<void> deleteSelectedOutletId() async {
await _sharedPreferences.remove(LocalStorageKey.selectedOutletId);
await _sharedPreferences.remove(LocalStorageKey.selectedOutletName);
}
}

View File

@ -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,
),
),