implemented hotrecharge changes

This commit is contained in:
2026-05-04 00:06:52 +02:00
parent 7566739665
commit 88c776507d
7 changed files with 170 additions and 121 deletions

View File

@@ -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() {