From 6bdc9a7c6ca772d72d66d3c8b526ea653099fb35 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Tue, 22 Apr 2025 11:38:53 +0800 Subject: [PATCH] added cache for suppliers --- .../functions/cache_getsupplierlist.dart | 14 ++++++++++++++ .../functions/cache_setsupplierlist.dart | 14 ++++++++++++++ .../supplierlist/supplierlist_cache_bloc.dart | 14 ++++++++++++++ .../supplierlist/supplierlist_cache_event.dart | 8 ++++++++ .../supplierlist/supplierlist_cache_state.dart | 5 +++++ 5 files changed, 55 insertions(+) create mode 100644 lib/blocs/caches/supplierlist/functions/cache_getsupplierlist.dart create mode 100644 lib/blocs/caches/supplierlist/functions/cache_setsupplierlist.dart create mode 100644 lib/blocs/caches/supplierlist/supplierlist_cache_bloc.dart create mode 100644 lib/blocs/caches/supplierlist/supplierlist_cache_event.dart create mode 100644 lib/blocs/caches/supplierlist/supplierlist_cache_state.dart diff --git a/lib/blocs/caches/supplierlist/functions/cache_getsupplierlist.dart b/lib/blocs/caches/supplierlist/functions/cache_getsupplierlist.dart new file mode 100644 index 0000000..27cb2f3 --- /dev/null +++ b/lib/blocs/caches/supplierlist/functions/cache_getsupplierlist.dart @@ -0,0 +1,14 @@ +import 'package:flutter/widgets.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:pharmacy_mobile/blocs/caches/supplierlist/supplierlist_cache_bloc.dart'; +import 'package:pharmacy_mobile/blocs/caches/supplierlist/supplierlist_cache_event.dart'; + +Future cacheGetSupplierList(BuildContext context) async { + try { + final supplierListCache = context.read(); + supplierListCache.add(SupplierListCacheGet()); + return supplierListCache.state.value; + } catch (e) { + return []; + } +} diff --git a/lib/blocs/caches/supplierlist/functions/cache_setsupplierlist.dart b/lib/blocs/caches/supplierlist/functions/cache_setsupplierlist.dart new file mode 100644 index 0000000..d35897f --- /dev/null +++ b/lib/blocs/caches/supplierlist/functions/cache_setsupplierlist.dart @@ -0,0 +1,14 @@ +import 'package:flutter/widgets.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:pharmacy_mobile/blocs/caches/supplierlist/supplierlist_cache_bloc.dart'; +import 'package:pharmacy_mobile/blocs/caches/supplierlist/supplierlist_cache_event.dart'; + +Future cacheSetSupplierList(BuildContext context, List value) async { + try { + final supplierListCache = context.read(); + supplierListCache.add(SupplierListCacheSet(value)); + return true; + } catch (e) { + return false; + } +} diff --git a/lib/blocs/caches/supplierlist/supplierlist_cache_bloc.dart b/lib/blocs/caches/supplierlist/supplierlist_cache_bloc.dart new file mode 100644 index 0000000..7fddedb --- /dev/null +++ b/lib/blocs/caches/supplierlist/supplierlist_cache_bloc.dart @@ -0,0 +1,14 @@ +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:pharmacy_mobile/blocs/caches/supplierlist/supplierlist_cache_event.dart'; +import 'package:pharmacy_mobile/blocs/caches/supplierlist/supplierlist_cache_state.dart'; + +class SupplierListBloc extends Bloc { + SupplierListBloc() : super(SupplierListCacheState([])) { + on((event, emit) { + emit(SupplierListCacheState(event.value)); + }); + on((event, emit) { + emit(state); + }); + } +} diff --git a/lib/blocs/caches/supplierlist/supplierlist_cache_event.dart b/lib/blocs/caches/supplierlist/supplierlist_cache_event.dart new file mode 100644 index 0000000..1f18523 --- /dev/null +++ b/lib/blocs/caches/supplierlist/supplierlist_cache_event.dart @@ -0,0 +1,8 @@ +abstract class SupplierListCacheEvent {} + +class SupplierListCacheSet extends SupplierListCacheEvent { + final List value; + SupplierListCacheSet(this.value); +} + +class SupplierListCacheGet extends SupplierListCacheEvent {} diff --git a/lib/blocs/caches/supplierlist/supplierlist_cache_state.dart b/lib/blocs/caches/supplierlist/supplierlist_cache_state.dart new file mode 100644 index 0000000..11905e4 --- /dev/null +++ b/lib/blocs/caches/supplierlist/supplierlist_cache_state.dart @@ -0,0 +1,5 @@ +class SupplierListCacheState { + final List value; + + SupplierListCacheState(this.value); +}