import 'package:eatvio_app/features/order_info/presentation/info_by_order_screen.dart'; import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:webview_flutter/webview_flutter.dart'; class PaymentScreen extends StatefulWidget { static const name = 'paymentScreen'; static const path = '/payment-screen'; final String url; final int planId; const PaymentScreen({super.key, required this.url, required this.planId}); @override State createState() => _PaymentScreenState(); } class _PaymentScreenState extends State { late final WebViewController _controller; @override void initState() { super.initState(); _controller = WebViewController() ..setJavaScriptMode(JavaScriptMode.unrestricted) ..setNavigationDelegate( NavigationDelegate( onNavigationRequest: (NavigationRequest request) { if (request.url.contains('tbank/checkout-success')) { if (request.url.contains('Success=true')) { GoRouter.of(context).pushReplacement(InfoByOrderScreen.path, extra: {'planId': widget.planId, 'successfulPayment': true}); } else { GoRouter.of(context).pushReplacement(InfoByOrderScreen.path, extra: {'planId': widget.planId, 'successfulPayment': false}); } } return NavigationDecision.navigate; }, ), ) ..loadRequest(Uri.parse(widget.url)); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(), body: WebViewWidget( controller: _controller, ), ); } }