diff --git a/lib/main.dart b/lib/main.dart index 74f0c57..481914a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -82,6 +82,10 @@ class _MyAppState extends State { 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'); diff --git a/lib/screens/confirm/confirm_controller.dart b/lib/screens/confirm/confirm_controller.dart index 2ca9390..591c946 100644 --- a/lib/screens/confirm/confirm_controller.dart +++ b/lib/screens/confirm/confirm_controller.dart @@ -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()); diff --git a/lib/screens/history/history_controller.dart b/lib/screens/history/history_controller.dart index 708b619..97b13a2 100644 --- a/lib/screens/history/history_controller.dart +++ b/lib/screens/history/history_controller.dart @@ -35,7 +35,6 @@ class HistoryController extends ChangeNotifier { notifyListeners(); try { - params['type'] = 'REQUEST'; Map response = await http.get( '/public/transaction?${buildQueryParameters(params)}', ); diff --git a/lib/screens/home/home_controller.dart b/lib/screens/home/home_controller.dart index 0931e1b..6c22de4 100644 --- a/lib/screens/home/home_controller.dart +++ b/lib/screens/home/home_controller.dart @@ -142,7 +142,7 @@ class HomeController extends ChangeNotifier { try { Map 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); diff --git a/lib/screens/home/home_screen.dart b/lib/screens/home/home_screen.dart index 3dbb25b..ad52d6f 100644 --- a/lib/screens/home/home_screen.dart +++ b/lib/screens/home/home_screen.dart @@ -24,6 +24,7 @@ class _HomeScreenState extends State 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 @override void initState() { super.initState(); + router.routerDelegate.addListener(_onRouteChanged); transactionController = Provider.of( context, @@ -124,11 +126,19 @@ class _HomeScreenState extends State ); } + 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 borderRadius: BorderRadius.circular(12), ), onTap: () { + transactionController + .clearFormData(); // make sure we're starting fresh homeController.updateSelectedProvider(e); transactionController.updateSelectedProvider(e); context.push("/recipients"); diff --git a/lib/screens/pay/pay_controller.dart b/lib/screens/pay/pay_controller.dart index 01fd76c..89e4267 100644 --- a/lib/screens/pay/pay_controller.dart +++ b/lib/screens/pay/pay_controller.dart @@ -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(); } diff --git a/lib/screens/transaction_controller.dart b/lib/screens/transaction_controller.dart index 0fee1e9..6848b3c 100644 --- a/lib/screens/transaction_controller.dart +++ b/lib/screens/transaction_controller.dart @@ -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(); + } }