// 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/home/new_home2.dart';
import 'package:byod/ui/select_branch.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:webview_flutter/webview_flutter.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,
    this.isFromSelectBranch = false,
    this.isFromMenu = false,
  });
  final String titleAppBar;
  final String url;
  final bool isFromSelectBranch;
  final bool isFromMenu;

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

class _WebViewMapState extends State<WebViewMap> {
  late WebViewController _controller;
  void onTapOkPop() {
    if (widget.isFromSelectBranch == true) {
      context.read<AddressUser>().getAddressUser(context,
          isGetBranchList: true, isCallDeliveryCharge: false);
      Navigator.push(
        context,
        MaterialPageRoute(
          builder: (_) => const SelectBranch(),
        ),
      );
    } else if (widget.isFromMenu == true) {
      context.read<AddressUser>().getAddressUser(context,
          isGetBranchList: false, isCallDeliveryCharge: false);
      Navigator.push(
        context,
        MaterialPageRoute(
          builder: (_) => const NewHome2(),
        ),
      );
    } else {
      context
          .read<AddressUser>()
          .getAddressUser(context, isGetBranchList: true);
      Navigator.pushReplacement(
        context,
        MaterialPageRoute(
          builder: (_) => const ViewBillNew(
            isRepeatViewBill: true,
          ),
        ),
      );
    }
  }

  @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,
            isFromSelectBranch: widget.isFromSelectBranch,
            isFromMenu: widget.isFromMenu,
          ),
          Expanded(
            child: WebView(
              initialUrl: widget.url,
              javascriptMode: JavascriptMode.unrestricted,
              onWebViewCreated: (webViewController) {
                _controller = webViewController;
              },
              onPageStarted: (url) {},
              onPageFinished: (url) {},
              navigationDelegate: (NavigationRequest request) {
                print(request.url);

                return NavigationDecision.navigate;
              },
            ),
          )
        ],
      ),
    );
  }
}

// NavigationDecision setupNavigationDelegate(NavigationRequest request) {
//   var url = request.url;
//   print("url :::: $url");

//   return NavigationDecision.navigate;
// }
