implemented hotrecharge changes
This commit is contained in:
@@ -62,11 +62,11 @@ abstract class BillProvider with _$BillProvider {
|
||||
required String description,
|
||||
required bool requiresAccount,
|
||||
required bool requiresAmount,
|
||||
required bool requiresAmountFromMerchant,
|
||||
required bool? requiresAmountFromMerchant,
|
||||
required bool requiresPhone,
|
||||
required bool requiresReversal,
|
||||
required bool? requiresReversal,
|
||||
required String? additionalDataString,
|
||||
required String processorType,
|
||||
required String? processorType,
|
||||
required String uid,
|
||||
required String image,
|
||||
required String label,
|
||||
@@ -83,8 +83,16 @@ class HomeController extends ChangeNotifier {
|
||||
final Http http = Http();
|
||||
BuildContext context;
|
||||
|
||||
bool _disposed = false;
|
||||
|
||||
HomeController(this.context);
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_disposed = true;
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
void _showErrorSnackBar(String? message) {
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
@@ -99,7 +107,7 @@ class HomeController extends ChangeNotifier {
|
||||
|
||||
Future<void> getAccounts() async {
|
||||
model.accounts = getFakeAccounts();
|
||||
notifyListeners();
|
||||
if (!_disposed) notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> getProviders() async {
|
||||
@@ -108,7 +116,7 @@ class HomeController extends ChangeNotifier {
|
||||
model.transactions = getFakeTransactions();
|
||||
|
||||
model.isLoading = true;
|
||||
notifyListeners();
|
||||
if (!_disposed) notifyListeners();
|
||||
|
||||
List<dynamic> response = await http.get('/public/providers');
|
||||
model.providers = response.map((e) => BillProvider.fromJson(e)).toList();
|
||||
@@ -117,8 +125,9 @@ class HomeController extends ChangeNotifier {
|
||||
if (model.providers.isNotEmpty) {
|
||||
updateSelectedProvider(model.providers[0]);
|
||||
}
|
||||
} catch (e) {
|
||||
} catch (e, s) {
|
||||
logger.e(e);
|
||||
logger.e(s);
|
||||
_showErrorSnackBar(
|
||||
"Problem fetching providers, are you connected to the internet?",
|
||||
);
|
||||
@@ -128,7 +137,7 @@ class HomeController extends ChangeNotifier {
|
||||
}
|
||||
|
||||
model.isLoading = false;
|
||||
notifyListeners();
|
||||
if (!_disposed) notifyListeners();
|
||||
}
|
||||
|
||||
void updateSelectedProvider(BillProvider provider) {
|
||||
@@ -136,13 +145,13 @@ class HomeController extends ChangeNotifier {
|
||||
|
||||
// getProducts(provider.uid);
|
||||
|
||||
notifyListeners();
|
||||
if (!_disposed) notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> getTransactions(String userId) async {
|
||||
model.isLoading = true;
|
||||
// model.transactions = getFakeTransactions();
|
||||
notifyListeners();
|
||||
if (!_disposed) notifyListeners();
|
||||
|
||||
try {
|
||||
Map<String, dynamic> response = await http.get(
|
||||
@@ -163,7 +172,7 @@ class HomeController extends ChangeNotifier {
|
||||
model.transactions = [];
|
||||
} finally {
|
||||
model.isLoading = false;
|
||||
notifyListeners();
|
||||
if (!_disposed) notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,7 +180,7 @@ class HomeController extends ChangeNotifier {
|
||||
// activate skeletonizer
|
||||
model.categories = getFakeCategoryData();
|
||||
model.isLoading = true;
|
||||
notifyListeners();
|
||||
if (!_disposed) notifyListeners();
|
||||
|
||||
// Simulate fetching categories
|
||||
try {
|
||||
@@ -190,14 +199,14 @@ class HomeController extends ChangeNotifier {
|
||||
model.categories = [];
|
||||
} finally {
|
||||
model.isLoading = false;
|
||||
notifyListeners();
|
||||
if (!_disposed) notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> updateSelectedCategory(Category? category) async {
|
||||
if (category == null) {
|
||||
model.filterableProviders = model.providers;
|
||||
notifyListeners();
|
||||
if (!_disposed) notifyListeners();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -207,7 +216,7 @@ class HomeController extends ChangeNotifier {
|
||||
.where((element) => element.category == category.label)
|
||||
.toList();
|
||||
|
||||
notifyListeners();
|
||||
if (!_disposed) notifyListeners();
|
||||
}
|
||||
|
||||
List<Map<String, dynamic>> getFakeTransactions() {
|
||||
|
||||
Reference in New Issue
Block a user