// import 'dart:async';

// import 'package:flutter/material.dart';
// // import 'package:webview_flutter/webview_flutter.dart';
// import 'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart';
// import 'package:fwfh_webview/fwfh_webview.dart';

// import '../splash.dart';
// import 'app_bar_webview.dart';
// // import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart';

// class WebViewMap extends StatelessWidget {
//   const WebViewMap({
//     super.key,
//     required this.titleAppBar,
//     required this.url,
//   });

//   final String titleAppBar;
//   final String url;

//   Future<bool> tapUrl(x, BuildContext context) async {
//     if (x.contains('jasaotp')) {
//       // Navigator.push(
//       //   context,
//       //   MaterialPageRoute(
//       //     builder: (_) => Splash(
//       //       pathSegmentString: [''],
//       //       context: context,
//       //     ),
//       //   ),
//       // );
//     }
//     return true;
//   }

//   @override
//   Widget build(BuildContext context) {
//     return Column(
//       children: [
//         CustomAppBar(
//           titleAppBar: titleAppBar,
//         ),
//         Expanded(
//           child: HtmlWidget(
//             '<iframe src="$url"></iframe>',
//             factoryBuilder: () => MyWidgetFactory(),
//             onTapImage: (x) {
//               print(x);
//             },
//             onTapUrl: (x) {
//               return tapUrl(x, context);
//             },
//           ),
//         ),
//         // WebView(
//         //   initialUrl: url,
//         //   onWebViewCreated: (WebViewController controller) {
//         //     _controller.complete(controller);
//         //   },
//         // )
//       ],
//     );
//     // return Scaffold(
//     //   appBar: AppBar(
//     //     title: const Text('Flutter WebView example'),
//     //     // actions: <Widget>[
//     //     //   _SampleMenu(_controller.future),
//     //     // ],
//     //   ),
//     //   body: WebView(
//     //     initialUrl: url,
//     //     onWebViewCreated: (WebViewController controller) {
//     //       _controller.complete(controller);
//     //     },
//     //   ),
//     // );
//   }
// }

// class MyWidgetFactory extends WidgetFactory with WebViewFactory {}

// asdal;skda;sldkasd

// import 'package:flutter/material.dart';
// import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
// // import 'package:fwfh_webview/fwfh_webview.dart';
// import '../../helper/prefs.dart';
// import 'app_bar_webview.dart';

// class WebViewMap extends StatefulWidget {
//   const WebViewMap({super.key});

//   @override
//   State<WebViewMap> createState() => _WebViewMapState();
// }

// class _WebViewMapState extends State<WebViewMap> {
//   final _webViewPlugin = FlutterWebviewPlugin();

//   @override
//   void initState() {
//     // TODO: implement initState
//     super.initState();
//     // on pressing back button, exiting the screen instead of showing loading symbol
//     _webViewPlugin.onDestroy.listen((_) {
//       if (Navigator.canPop(context)) {
//         Navigator.of(context).pop();
//       }
//     });
//   }

//   @override
//   Widget build(BuildContext context) {
//     // WillPopScope will prevent loading
//     return Column(
//       children: [
//         const CustomAppBar(
//           titleAppBar: 'Pilih Alamat',
//         ),
//         Expanded(
//           // child: WebviewScaffold(
//           //   url: '${getBaseUrl()}rdm/address/add/',
//           //   withLocalStorage: true,
//           //   withJavascript: true,
//           //   appCacheEnabled: true,
//           // ),
//           child: WebviewScaffold(url: '${getBaseUrl()}rdm/address/add/')
//         )
//       ],
//     );
//   }
// }

import 'package:byod/bloc/address_user_bloc.dart';
import 'package:byod/ui/viewbill/view_bill_new.dart';
import 'package:byod/ui/webview/app_bar_webview.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:webviewx_plus/webviewx_plus.dart';

import '../../helper/helper.dart';
import '../../helper/widget/button_dialog.dart';

class WebViewMap extends StatefulWidget {
  const WebViewMap({
    super.key,
    required this.titleAppBar,
    required this.url,
  });
  final String titleAppBar;
  final String url;

  @override
  State<WebViewMap> createState() => _WebViewMapState();
}

class _WebViewMapState extends State<WebViewMap> {
  late WebViewXController webviewController;
  void onTapOkPop() {
    context.read<AddressUser>().getAddressUser();
    Navigator.pushReplacement(
      context,
      MaterialPageRoute(
        builder: (_) => const ViewBillNew(),
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return WillPopScope(
      onWillPop: () async {
        final shouldPop = await buttonDialogGlobal(
          context,
          'Konfirmasi',
          'Apakah anda sudah mengisi alamat dengan benar ?',
          'Ya',
          'Batal',
          onTapOkPop,
          onTapOkPop,
          okButtonColor: buttonColor,
          cancelButtonColor: cancelColorButton,
        );

        return shouldPop ?? false;
      },
      child: Column(
        children: [
          CustomAppBar(titleAppBar: widget.titleAppBar),
          Expanded(
            child: WebViewX(
              width: MediaQuery.of(context).size.width,
              height: MediaQuery.of(context).size.height,
              initialContent: widget.url,
              javascriptMode: JavascriptMode.unrestricted,
              initialSourceType: SourceType.url,
              onWebViewCreated: (controller) {
                webviewController = controller;
              },
              // navigationDelegate: (NavigationRequest request) {
              //   return NavigationDecision.navigate;
              // },
            ),
          )
        ],
      ),
    );
  }
}
