// import 'package:flutter/material.dart';
// import 'package:flutter_screenutil/flutter_screenutil.dart';
// import 'package:get/get.dart';
// import 'package:pin_code_fields/pin_code_fields.dart';

// import '../../../app.dart';
// import '../widgets/forgot_password_screen.dart';

// class OTPPage extends StatefulWidget {
//   final Map<String, dynamic> params;
//   final String verificationCode;
//   final bool isRegister;
//   const OTPPage({
//     Key? key,
//     required this.params,
//     required this.verificationCode,
//     this.isRegister = true,
//   }) : super(key: key);

//   @override
//   _OTPPageState createState() => _OTPPageState();
// }

// class _OTPPageState extends State<OTPPage> {
//   String _otpCode = '';
//   bool isOTP_OK = true;
//   bool isBtnTapped = false;
//   bool isLoading = false;

//   Future<void> _onConfirmButtonTapped() async {
//     debugPrint('on confirm button tapped $_otpCode');
//     debugPrint('widget verification code ${widget.verificationCode}');

//     setState(() {
//       isOTP_OK = widget.verificationCode == _otpCode;
//       isBtnTapped = true;
//     });

//     if (isOTP_OK && isBtnTapped) {
//       debugPrint('OKAY STATUS: $isOTP_OK');
//       if (widget.isRegister)
//         _registerUser();
//       else
//         _resetPassword();
//     } else {
//       debugPrint('OKAY STATUS: $isOTP_OK');
//     }
//   }

//   void _resetPassword() {
//     Get.to(
//       () => ForgotPasswordPage(
//         params: {
//           'phone': widget.params['phone'],
//           'token': widget.verificationCode,
//         },
//       ),
//     );
//   }

//   Future<void> _registerUser() async {
//     setState(() => isLoading = true);

//     debugPrint('widget.params ${widget.params}');

//     final result = await AuthApi.registerUser(widget.params);
//     setState(() => isLoading = false);

//     if (result) {
//       debugPrint('LOGIN OPERATION');
//       final ProfileController _profileController = Get.put(ProfileController());
//       setLoginStatus(result);
//       Get.back();
//       _profileController.onInit();
//     }
//   }

//   bool _isOTPCodeEntered() => _otpCode.length == 4;

//   @override
//   Widget build(BuildContext context) {
//     return Scaffold(
//       appBar: AppBar(
//         leading: IconButton(
//           splashColor: ThemeColor.grey.withOpacity(0.20),
//           splashRadius: 20.h,
//           onPressed: () => Navigator.of(context).pop(),
//           icon: Icon(
//             Icons.arrow_back,
//             color: ThemeColor.black,
//             size: 26.h,
//           ),
//         ),
//       ),
//       body: SingleChildScrollView(
//         child: ConstrainedBox(
//           constraints: BoxConstraints(
//             minWidth: 1.sw,
//             minHeight: 1.sh,
//           ),
//           child: IntrinsicHeight(
//             child: Container(
//               padding: EdgeInsets.only(left: 30.w, right: 30.w, top: 20.h),
//               child: Column(
//                 crossAxisAlignment: CrossAxisAlignment.start,
//                 children: [
//                   // Text(
//                   //   'verification'.tr,
//                   //   style: new TextStyle(
//                   //     color: ThemeColor.mainColor,
//                   //     fontSize: 32.sp,
//                   //     fontWeight: FontWeight.w700,
//                   //   ),
//                   // ),

//                   Center(
//                     child: Icon(
//                       Icons.sms,
//                       color: ThemeColor.mainColor.withOpacity(0.90),
//                       size: 50.sp,
//                     ),
//                   ),
//                   SizedBox(height: 30.h),
//                   RichText(
//                     // overflow: TextOverflow.ellipsis,
//                     text: TextSpan(
//                       text: 'enter_sms_code'.tr + '\n',
//                       style: new TextStyle(fontWeight: FontWeight.w500, fontSize: 16.sp, color: ThemeColor.color717278),
//                       children: <TextSpan>[
//                         TextSpan(
//                           text: '+993 ${widget.params['phone']}',
//                           style: TextStyle(fontWeight: FontWeight.normal, fontSize: 16.sp, color: Colors.black),
//                         ),
//                       ],
//                     ),
//                   ),
//                   SizedBox(height: 30.h),
//                   PinCodeTextField(
//                     onChanged: (String value) {
//                       debugPrint('on changed value $value');
//                       setState(() => _otpCode = value);
//                     },
//                     length: 4,
//                     appContext: context,
//                     cursorColor: Colors.black,
//                     animationDuration: Duration(milliseconds: 300),
//                     keyboardType: TextInputType.number,
//                     pinTheme: PinTheme(
//                       shape: PinCodeFieldShape.box,
//                       borderRadius: BorderRadius.circular(8),
//                       fieldHeight: 50.h,
//                       fieldWidth: 50.w,
//                       activeFillColor: Colors.white,
//                       disabledColor: ThemeColor.grey.withOpacity(0.30),
//                       activeColor: ThemeColor.grey.withOpacity(0.30),
//                       inactiveColor: ThemeColor.grey.withOpacity(0.30),
//                       selectedColor: ThemeColor.grey.withOpacity(0.30),
//                     ),
//                     animationType: AnimationType.fade,
//                   ),
//                   isOTP_OK
//                       ? SizedBox.shrink()
//                       : Container(
//                           width: double.infinity,
//                           padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16),
//                           decoration: new BoxDecoration(
//                             color: HexColor('#FF0800').withOpacity(0.10),
//                             borderRadius: BorderRadius.circular(8),
//                           ),
//                           child: Text(
//                             'incorrect_code'.tr,
//                             textAlign: TextAlign.center,
//                           ),
//                         ),
//                   SizedBox(height: 30.h),
//                   isLoading
//                       ? CustomLoader()
//                       : ColoredButton(
//                           title: 'confirm'.tr,
//                           callback: _isOTPCodeEntered() ? _onConfirmButtonTapped : null,
//                           btnColor: _isOTPCodeEntered() ? ThemeColor.mainColor : HexColor('#EFF0F4'),
//                           txtColor: _isOTPCodeEntered() ? ThemeColor.white : ThemeColor.black.withOpacity(0.45),
//                         ),
//                 ],
//               ),
//             ),
//           ),
//         ),
//       ),
//     );
//   }
// }
