import 'dart:io';
import 'dart:ui';

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:traderscircuit/Utils/Common/CommonAppbar.dart';
import 'package:traderscircuit/Utils/Common/CustomTextFormField.dart';
import 'package:traderscircuit/Utils/Common/commonBotton.dart';
import 'package:traderscircuit/Utils/text.dart';
import 'package:traderscircuit/resources/routes/route_name.dart';
import 'package:traderscircuit/view/onBoarding/splashScreen1.dart';

import '../../controller/kyc_controller.dart';

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

  @override
  State<Kyc> createState() => _KycState();
}

class _KycState extends State<Kyc> {
  TextEditingController pincode = TextEditingController();
  TextEditingController dobcontroller = TextEditingController();
  Color primaryColor = Colors.transparent.withOpacity(0.2);
  Color secondaryColor = Colors.grey.shade800;

  KYCController kycController = Get.put(KYCController());

  // DateTime timebackPressed = DateTime.now();

  // Future<void> _selectDate(BuildContext context) async {
  //   final DateTime? picked = await showDatePicker(
  //       context: context,
  //       initialDate: DateTime.now(),
  //       firstDate: DateTime(1900),
  //       lastDate: DateTime.now(),
  //       builder: (context, child) {
  //         return Theme(
  //             data: Theme.of(context).copyWith(
  //               colorScheme: const ColorScheme.light(
  //                 surface: Colors.black,
  //                 onSurface: Colors.white,
  //                 primary: Color(0xff9A0000),
  //                 onPrimary: Colors.white,
  //               ),
  //               textButtonTheme: TextButtonThemeData(
  //                 style: TextButton.styleFrom(
  //                   foregroundColor: Colors.white,
  //                 ),
  //               ),
  //             ),
  //             child: child!);
  //       });

  //   if (picked != null && picked != DateTime.now()) {
  //     setState(() {
  //       dobcontroller.text = "${picked.toLocal()}".split(' ')[0];
  //       final birthDate = DateTime(
  //         picked.year,
  //         picked.month,
  //         picked.day,
  //       );
  //     });
  //   }
  // }

  @override
  Widget build(BuildContext context) {
    return Obx(
      () => Scaffold(
        appBar: CommonAppbar(
          titleTxt: "KYC",
          customActionWidget: text16W400(""),
        ),
        backgroundColor: Colors.black,
        extendBody: true,
        body: Stack(
          children: [
            const CommonBlurLeft(),
            const CommonBlurRight(),
            Stack(
              children: [
                Padding(
                  padding:
                      const EdgeInsets.symmetric(horizontal: 16, vertical: 16),
                  child: ListView(
                    physics: const BouncingScrollPhysics(),
                    // mainAxisAlignment: MainAxisAlignment.start,
                    // crossAxisAlignment: CrossAxisAlignment.start,

                    children: [
                      //  CommonDropdownBtn(hint: "hint", items: ["hi", "hii"]),
                      // Row(
                      //   children: [
                      //     text18W400("Full Name"),
                      //   ],
                      // ),
                      // SizedBox(
                      //   height: 15.h,
                      // ),
                      // CustomTextFormField(),
                      // SizedBox(
                      //   height: 30.h,
                      // ),
                      // Row(
                      //   children: [
                      //     text18W400("Email Address"),
                      //   ],
                      // ),
                      // SizedBox(
                      //   height: 15.h,
                      // ),
                      // CustomTextFormField(),
                      // SizedBox(
                      //   height: 30.h,
                      // ),
                      // Row(
                      //   children: [
                      //     text18W400("Phone Number"),
                      //   ],
                      // ),
                      // SizedBox(
                      //   height: 15.h,
                      // ),
                      // CustomTextFormField(),
                      // SizedBox(
                      //   height: 30.h,
                      // ),
                      // Row(
                      //   children: [
                      //     text18W400("Date Of Birth"),
                      //   ],
                      // ),
                      // SizedBox(
                      //   height: 15.h,
                      // ),
                      // CustomTextFormField(
                      //   suffixIcon: Icon(
                      //     Icons.calendar_month_outlined,
                      //     color: Colors.white,
                      //   ),
                      //   readonly: true,
                      //   onTap: () {
                      //     _selectDate(context);
                      //   },
                      // ),
                      // SizedBox(
                      //   height: 30.h,
                      // ),
                      // Row(
                      //   children: [
                      //     text18W400("City"),
                      //   ],
                      // ),
                      // SizedBox(
                      //   height: 15.h,
                      // ),
                      // CustomTextFormField(),
                      Row(
                        children: [
                          text18W500("Step 1 : Personal Information"),
                        ],
                      ),
                      SizedBox(
                        height: 30.h,
                      ),
                      Row(
                        children: [
                          text18W400("Upload pan card image"),
                        ],
                      ),
                      SizedBox(
                        height: 15.h,
                      ),
                      Row(
                        mainAxisAlignment: MainAxisAlignment.spaceBetween,
                        children: [
                          InkWell(
                            onTap: () {
                              if (kycController.panFrontImage.isEmpty) {
                                Get.toNamed(RouteName.kycImage, arguments: {
                                  "type": "pan front",
                                });
                              }
                            },
                            child: GlassmorphicContainer(
                              width: 170.w,
                              height: 105.h,
                              borderRadius: 8,
                              linearGradient: LinearGradient(
                                  begin: Alignment.topLeft,
                                  end: Alignment.bottomRight,
                                  colors: [
                                    const Color(0xFFffffff).withOpacity(0.1),
                                    const Color(0xFFFFFFFF).withOpacity(0.05),
                                  ],
                                  stops: const [
                                    0.1,
                                    1,
                                  ]),
                              border: 0.8,
                              blur: 10,
                              borderGradient: LinearGradient(
                                begin: Alignment.topLeft,
                                end: Alignment.bottomRight,
                                colors: [
                                  const Color(0xff9A0000).withOpacity(0.5),
                                  const Color(0xFFffffff).withOpacity(0.5),
                                ],
                              ),
                              child: (kycController.panFrontImage.isNotEmpty)
                                  ? Stack(
                                      children: [
                                        Padding(
                                          padding: const EdgeInsets.symmetric(
                                              vertical: 20, horizontal: 40),
                                          child: Image(
                                            image: FileImage(
                                              File(
                                                kycController
                                                    .panFrontImage.value,
                                              ),
                                            ),
                                            fit: BoxFit.cover,
                                            width: Get.width,
                                            height: 50.h,
                                          ),
                                        ),
                                        Positioned(
                                          top: 6,
                                          right: 10,
                                          child: InkWell(
                                            onTap: () {
                                              kycController
                                                  .panFrontImage.value = "";
                                            },
                                            child: SvgPicture.asset(
                                              "assets/images/svg/cancel.svg",
                                              width: 18,
                                              height: 18,
                                            ),
                                          ),
                                        )
                                      ],
                                    )
                                  : Center(
                                      child: Column(
                                        mainAxisAlignment:
                                            MainAxisAlignment.center,
                                        children: [
                                          const Icon(
                                            Icons.file_upload_outlined,
                                            size: 42,
                                            color: Colors.white,
                                          ),
                                          SizedBox(
                                            height: 10.h,
                                          ),
                                          text14W400("Front Side")
                                        ],
                                      ),
                                    ),
                            ),
                          ),
                          InkWell(
                            onTap: () {
                              if (kycController.panBackImage.isEmpty) {
                                Get.toNamed(RouteName.kycImage, arguments: {
                                  "type": "pan back",
                                });
                              }
                            },
                            child: GlassmorphicContainer(
                              width: 170.w,
                              height: 105.h,
                              borderRadius: 8,
                              linearGradient: LinearGradient(
                                  begin: Alignment.topLeft,
                                  end: Alignment.bottomRight,
                                  colors: [
                                    const Color(0xFFffffff).withOpacity(0.1),
                                    const Color(0xFFFFFFFF).withOpacity(0.05),
                                  ],
                                  stops: const [
                                    0.1,
                                    1,
                                  ]),
                              border: 0.8,
                              blur: 10,
                              borderGradient: LinearGradient(
                                begin: Alignment.topLeft,
                                end: Alignment.bottomRight,
                                colors: [
                                  const Color(0xff9A0000).withOpacity(0.5),
                                  const Color(0xFFffffff).withOpacity(0.5),
                                ],
                              ),
                              child: (kycController.panBackImage.isNotEmpty)
                                  ? Stack(
                                      children: [
                                        Padding(
                                          padding: const EdgeInsets.symmetric(
                                              vertical: 20, horizontal: 40),
                                          child: Image(
                                            image: FileImage(
                                              File(
                                                kycController
                                                    .panBackImage.value,
                                              ),
                                            ),
                                            fit: BoxFit.cover,
                                            width: Get.width,
                                            height: 50.h,
                                          ),
                                        ),
                                        Positioned(
                                          top: 6,
                                          right: 10,
                                          child: InkWell(
                                            onTap: () {
                                              kycController.panBackImage.value =
                                                  "";
                                            },
                                            child: SvgPicture.asset(
                                              "assets/images/svg/cancel.svg",
                                              width: 18,
                                              height: 18,
                                            ),
                                          ),
                                        )
                                      ],
                                    )
                                  : Center(
                                      child: Column(
                                        mainAxisAlignment:
                                            MainAxisAlignment.center,
                                        children: [
                                          const Icon(
                                            Icons.file_upload_outlined,
                                            size: 42,
                                            color: Colors.white,
                                          ),
                                          SizedBox(
                                            height: 10.h,
                                          ),
                                          text14W400("Back Side")
                                        ],
                                      ),
                                    ),
                            ),
                          )
                        ],
                      ),
                      SizedBox(
                        height: 30.h,
                      ),
                      Row(
                        children: [
                          text18W400("Aadhar Number"),
                        ],
                      ),
                      SizedBox(
                        height: 15.h,
                      ),
                      const CustomTextFormField(),
                      SizedBox(
                        height: 30.h,
                      ),
                      Row(
                        children: [
                          text18W400("Upload Aadhar card image"),
                        ],
                      ),
                      SizedBox(
                        height: 15.h,
                      ),
                      Row(
                        mainAxisAlignment: MainAxisAlignment.spaceBetween,
                        children: [
                          InkWell(
                            onTap: () {
                              if (kycController.aadharFrontImage.isEmpty) {
                                Get.toNamed(RouteName.kycImage, arguments: {
                                  "type": "aadhar front",
                                });
                              }
                            },
                            child: GlassmorphicContainer(
                              width: 170.w,
                              height: 105.h,
                              borderRadius: 8,
                              linearGradient: LinearGradient(
                                  begin: Alignment.topLeft,
                                  end: Alignment.bottomRight,
                                  colors: [
                                    const Color(0xFFffffff).withOpacity(0.1),
                                    const Color(0xFFFFFFFF).withOpacity(0.05),
                                  ],
                                  stops: const [
                                    0.1,
                                    1,
                                  ]),
                              border: 0.8,
                              blur: 10,
                              borderGradient: LinearGradient(
                                begin: Alignment.topLeft,
                                end: Alignment.bottomRight,
                                colors: [
                                  const Color(0xff9A0000).withOpacity(0.5),
                                  const Color(0xFFffffff).withOpacity(0.5),
                                ],
                              ),
                              child: (kycController.aadharFrontImage.isNotEmpty)
                                  ? Stack(
                                      children: [
                                        Padding(
                                          padding: const EdgeInsets.symmetric(
                                              vertical: 20, horizontal: 40),
                                          child: Image(
                                            image: FileImage(
                                              File(
                                                kycController
                                                    .aadharFrontImage.value,
                                              ),
                                            ),
                                            fit: BoxFit.cover,
                                            width: Get.width,
                                            height: 50.h,
                                          ),
                                        ),
                                        Positioned(
                                          top: 6,
                                          right: 10,
                                          child: InkWell(
                                            onTap: () {
                                              kycController
                                                  .aadharFrontImage.value = "";
                                            },
                                            child: SvgPicture.asset(
                                              "assets/images/svg/cancel.svg",
                                              width: 18,
                                              height: 18,
                                            ),
                                          ),
                                        )
                                      ],
                                    )
                                  : Center(
                                      child: Column(
                                        mainAxisAlignment:
                                            MainAxisAlignment.center,
                                        children: [
                                          const Icon(
                                            Icons.file_upload_outlined,
                                            size: 42,
                                            color: Colors.white,
                                          ),
                                          SizedBox(
                                            height: 10.h,
                                          ),
                                          text14W400("Front Side")
                                        ],
                                      ),
                                    ),
                            ),
                          ),
                          InkWell(
                            onTap: () {
                              if (kycController.aadharBackImage.isEmpty) {
                                Get.toNamed(RouteName.kycImage, arguments: {
                                  "type": "aadhar back",
                                });
                              }
                            },
                            child: GlassmorphicContainer(
                              width: 170.w,
                              height: 105.h,
                              borderRadius: 8,
                              linearGradient: LinearGradient(
                                  begin: Alignment.topLeft,
                                  end: Alignment.bottomRight,
                                  colors: [
                                    const Color(0xFFffffff).withOpacity(0.1),
                                    const Color(0xFFFFFFFF).withOpacity(0.05),
                                  ],
                                  stops: const [
                                    0.1,
                                    1,
                                  ]),
                              border: 0.8,
                              blur: 10,
                              borderGradient: LinearGradient(
                                begin: Alignment.topLeft,
                                end: Alignment.bottomRight,
                                colors: [
                                  const Color(0xff9A0000).withOpacity(0.5),
                                  const Color(0xFFffffff).withOpacity(0.5),
                                ],
                              ),
                              child: (kycController.aadharBackImage.isNotEmpty)
                                  ? Stack(
                                      children: [
                                        Padding(
                                          padding: const EdgeInsets.symmetric(
                                              vertical: 20, horizontal: 40),
                                          child: Image(
                                            image: FileImage(
                                              File(
                                                kycController
                                                    .aadharBackImage.value,
                                              ),
                                            ),
                                            fit: BoxFit.cover,
                                            width: Get.width,
                                            height: 50.h,
                                          ),
                                        ),
                                        Positioned(
                                          top: 6,
                                          right: 10,
                                          child: InkWell(
                                            onTap: () {
                                              kycController
                                                  .aadharBackImage.value = "";
                                            },
                                            child: SvgPicture.asset(
                                              "assets/images/svg/cancel.svg",
                                              width: 18,
                                              height: 18,
                                            ),
                                          ),
                                        )
                                      ],
                                    )
                                  : Center(
                                      child: Column(
                                        mainAxisAlignment:
                                            MainAxisAlignment.center,
                                        children: [
                                          const Icon(
                                            Icons.file_upload_outlined,
                                            size: 42,
                                            color: Colors.white,
                                          ),
                                          SizedBox(
                                            height: 10.h,
                                          ),
                                          text14W400("Back Side")
                                        ],
                                      ),
                                    ),
                            ),
                          )
                        ],
                      ),
                      SizedBox(
                        height: 70.h,
                      ),
                      CommonBtn(
                        text: "Next",
                        onTap: () {
                          Get.toNamed(RouteName.updateriskprofile);
                        },
                      ),
                      SizedBox(
                        height: 10.h,
                      ),
                    ],
                  ),
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}
