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

View File

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

View File

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

View File

@@ -142,7 +142,7 @@ class HomeController extends ChangeNotifier {
try { try {
Map<String, dynamic> response = await http.get( 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); PageableModel pageableModel = PageableModel.fromJson(response);

View File

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

View File

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

View File

@@ -114,4 +114,36 @@ class TransactionController extends ChangeNotifier {
model.repeatFormData = data; model.repeatFormData = data;
notifyListeners(); 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();
}
} }