updates on tran flow

This commit is contained in:
2025-09-01 23:53:53 +02:00
parent 6e2f91d2c0
commit 0bdabe55cc
7 changed files with 52 additions and 5 deletions

View File

@@ -82,6 +82,10 @@ class _MyAppState extends State<MyApp> {
path: '/',
builder: (context, state) => const HomeScreen(),
),
GoRoute(
path: '/home',
builder: (context, state) => const HomeScreen(),
),
GoRoute(
path: '/make-payment',
builder: (context, state) => const PayScreen(),
@@ -153,7 +157,7 @@ class ScaffoldWithNavBar extends StatelessWidget {
onDestinationSelected: (index) {
switch (index) {
case 0:
context.go('/');
context.go('/home');
break;
// case 1:
// context.go('/recipients');

View File

@@ -67,7 +67,7 @@ class ConfirmController extends ChangeNotifier {
);
dynamic response = await http.post(
'/public/transaction',
'/public/transaction/request',
transactionController.model.formData,
);
logger.i(response.toString());

View File

@@ -35,7 +35,6 @@ class HistoryController extends ChangeNotifier {
notifyListeners();
try {
params['type'] = 'REQUEST';
Map<String, dynamic> response = await http.get(
'/public/transaction?${buildQueryParameters(params)}',
);

View File

@@ -142,7 +142,7 @@ class HomeController extends ChangeNotifier {
try {
Map<String, dynamic> response = await http.get(
'/public/transaction?sort=createdAt,desc&size=3&page=0&userId=$userId&type=REQUEST',
'/public/transaction?sort=createdAt,desc&size=3&page=0&userId=$userId',
);
PageableModel pageableModel = PageableModel.fromJson(response);

View File

@@ -24,6 +24,7 @@ class _HomeScreenState extends State<HomeScreen>
late bool _loading = true;
late SharedPreferences prefs;
late HomeController homeController;
late final router = GoRouter.of(context);
Timer? _loadingTimer;
bool get _isLoggedIn => false;
@@ -35,6 +36,7 @@ class _HomeScreenState extends State<HomeScreen>
@override
void initState() {
super.initState();
router.routerDelegate.addListener(_onRouteChanged);
transactionController = Provider.of<TransactionController>(
context,
@@ -124,11 +126,19 @@ class _HomeScreenState extends State<HomeScreen>
);
}
void _onRouteChanged() {
final location = router.routerDelegate.currentConfiguration.uri.toString();
if (location.startsWith('/home')) {
setupDataAndTransitions();
}
}
@override
void dispose() {
_loadingTimer?.cancel();
_controller.dispose();
homeController.dispose();
router.routerDelegate.removeListener(_onRouteChanged);
super.dispose();
}
@@ -529,6 +539,8 @@ class _HomeScreenState extends State<HomeScreen>
borderRadius: BorderRadius.circular(12),
),
onTap: () {
transactionController
.clearFormData(); // make sure we're starting fresh
homeController.updateSelectedProvider(e);
transactionController.updateSelectedProvider(e);
context.push("/recipients");

View File

@@ -189,7 +189,7 @@ class PayController extends ChangeNotifier {
void updatePhone(String phone) {
transactionController.model.formData = transactionController.model.formData
.copyWith(debitPhone: phone);
.copyWith(creditPhone: phone);
notifyListeners();
}

View File

@@ -114,4 +114,36 @@ class TransactionController extends ChangeNotifier {
model.repeatFormData = data;
notifyListeners();
}
clearFormData() {
model.formData = FormData(
id: '',
type: '',
billClientId: '',
debitRef: '',
debitCurrency: '',
amount: '',
debitPhone: '',
debitAccount: '',
creditAccount: '',
creditPhone: '',
creditName: '',
creditEmail: '',
billName: '',
errorMessage: '',
status: 'PENDING',
paymentProcessorLabel: '',
charge: '',
gatewayCharge: '',
tax: '',
totalAmount: '',
paymentProcessorName: '',
paymentProcessorImage: '',
providerImage: '',
userId: '',
providerLabel: '',
);
notifyListeners();
}
}