import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/model/SOAP/master_key_model.dart';
import 'package:doctor_app_flutter/core/model/SOAP/physical_exam/Category.dart';
import 'package:doctor_app_flutter/core/model/SOAP/selected_items/my_selected_examination.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart';

class ExaminationItems extends StatefulWidget {
  final List<Category>? examination;

  const ExaminationItems({super.key, this.examination});

  @override
  State<ExaminationItems> createState() => _ExaminationItemsState();
}

class _ExaminationItemsState extends State<ExaminationItems> {
  bool isExpanded = false;

  List<Category>? examinations;

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    this.examinations = widget.examination;
  }

  @override
  Widget build(BuildContext context) {
    ProjectViewModel projectViewModel = Provider.of(context);
    return SingleChildScrollView(
      child: Column(
        children: examinations?.map((value)=> Column(
          children: [
            ListTileTheme(
              horizontalTitleGap: 0,
              child: CheckboxListTile(
                activeColor: Color(0xFFD02127),
                checkColor: Colors.white,
                contentPadding: EdgeInsets.zero,
                side: MaterialStateBorderSide.resolveWith(
                      (Set<MaterialState> states) {
                    if (states.contains(MaterialState.selected)) {
                      return const BorderSide(color: Color(0xFFD02127));
                    }
                    return const BorderSide(color: Color(0xFFE6E6E6));
                  },
                ),
                shape: RoundedRectangleBorder(
                    borderRadius: BorderRadius.circular(16)),
                value: value.isSelected,
                controlAffinity: ListTileControlAffinity.leading,
                onChanged: (bool? selected) {
                  setState(() {
                    value?.isSelected = selected ?? false;
                  });
                },
                title: AppText(
                  value.name!,
                  color: Color(0XFF575757),
                  fontSize: 14,
                  fontWeight: FontWeight.w400,
                ),
              ),
            ),
            (value.isSelected == true)
                ? Container(
              padding: EdgeInsets.symmetric(horizontal: 12),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  Container(
                    margin: EdgeInsets.only(bottom: 8),
                    child: AppText(
                      TranslationBase.of(context).condition,
                      fontWeight: FontWeight.bold,
                      fontFamily: 'Poppins',
                      fontSize: SizeConfig.textMultiplier! * 1.6,
                    ),
                  ),
                  SizedBox(
                    width: MediaQuery.sizeOf(context).width,
                    height: 24,
                    child: ListView.builder(
                        shrinkWrap: true,
                        scrollDirection: Axis.horizontal,
                        itemCount: value
                            .conditionsList
                            ?.length ??
                            0,
                        itemBuilder: (context, currentIndex) => InkWell(
                          onTap: () {
                            setState(() {
                              value
                                  .selectedConditionName = value.conditionsList?[currentIndex].conditionCode?? '';
                              value
                                  .selectedCondition =
                                  int.parse(value
                                      .conditionsList?[
                                  currentIndex]
                                      .conditionName ??
                                      "-1");
                            });
                          },
                          child: Row(
                            children: [
                              Container(
                                padding: EdgeInsets.all(2.0),
                                margin: EdgeInsets.symmetric(
                                    horizontal: 6),
                                width: 20,
                                height: 20,
                                decoration: BoxDecoration(
                                  color: Colors.white,
                                  shape: BoxShape.circle,
                                  border: Border.all(
                                      color: Colors.grey, width: 1),
                                ),
                                child: Container(
                                  decoration: BoxDecoration(
                                    color: value
                                        .selectedCondition ==
                                        int.parse(value
                                            .conditionsList?[
                                        currentIndex]
                                            .conditionName ??
                                            "-1")
                                        ? HexColor("#D02127")
                                        : Colors.white,
                                    shape: BoxShape.circle,
                                  ),
                                ),
                              ),
                              AppText(
                                value
                                    .conditionsList?[
                                currentIndex]
                                    .conditionCode ??
                                    '',
                                fontWeight: FontWeight.normal,
                                fontFamily: 'Poppins',
                                fontSize:
                                SizeConfig.textMultiplier! *
                                    1.6,
                              ),
                            ],
                          ),
                        )),
                  ),
                  // Row(
                  //   children: [
                  //     if(examinations?[index]
                  //         .conditionsList?.length == 1)
                  //     Expanded(
                  //         child: InkWell(
                  //       onTap: () {
                  //         setState(() {
                  //           examinations?[index].selectedCondition =
                  //               int.parse(examinations?[index]
                  //                       .conditionsList?[0]
                  //                       .conditionName ??
                  //                   "-1");
                  //         });
                  //       },
                  //       child: Row(
                  //         children: [
                  //           Container(
                  //             padding: EdgeInsets.all(2.0),
                  //             margin:
                  //                 EdgeInsets.symmetric(horizontal: 6),
                  //             width: 20,
                  //             height: 20,
                  //             decoration: BoxDecoration(
                  //               color: Colors.white,
                  //               shape: BoxShape.circle,
                  //               border: Border.all(
                  //                   color: Colors.grey, width: 1),
                  //             ),
                  //             child: Container(
                  //               decoration: BoxDecoration(
                  //                 color: examinations?[index].selectedCondition ==
                  //                     int.parse(examinations?[index]
                  //                         .conditionsList?[0]
                  //                         .conditionName ??
                  //                         "-1")
                  //                     ? HexColor("#D02127")
                  //                     : Colors.white,
                  //                 shape: BoxShape.circle,
                  //               ),
                  //             ),
                  //           ),
                  //           AppText(
                  //             examinations?[index]
                  //                 .conditionsList?[0]
                  //                 .conditionCode ??
                  //                 TranslationBase.of(context).normal,
                  //             fontWeight: FontWeight.normal,
                  //             fontFamily: 'Poppins',
                  //             fontSize:
                  //                 SizeConfig.textMultiplier! * 1.6,
                  //           ),
                  //         ],
                  //       ),
                  //     )),
                  //     Expanded(
                  //         child: InkWell(
                  //       onTap: () {
                  //         setState(() {
                  //           setState(() {
                  //             examinations?[index].selectedCondition =
                  //                 int.parse(examinations?[index]
                  //                     .conditionsList?[1]
                  //                     .conditionName ??
                  //                     "-1");
                  //           });
                  //         });
                  //       },
                  //       child: Row(
                  //         children: [
                  //           Container(
                  //             padding: EdgeInsets.all(2.0),
                  //             margin:
                  //                 EdgeInsets.symmetric(horizontal: 6),
                  //             width: 20,
                  //             height: 20,
                  //             decoration: BoxDecoration(
                  //               color: Colors.white,
                  //               shape: BoxShape.circle,
                  //               border: Border.all(
                  //                   color: Colors.grey, width: 1),
                  //             ),
                  //             child: Container(
                  //               decoration: BoxDecoration(
                  //                 color: examinations?[index].selectedCondition ==
                  //                     int.parse(examinations?[index]
                  //                         .conditionsList?[1]
                  //                         .conditionName ??
                  //                         "-1")
                  //                     ? HexColor("#D02127")
                  //                     : Colors.white,
                  //                 shape: BoxShape.circle,
                  //               ),
                  //             ),
                  //           ),
                  //           AppText(
                  //             examinations?[index]
                  //                 .conditionsList?[1]
                  //                 .conditionCode ??
                  //                 TranslationBase.of(context).abnormal,
                  //             fontWeight: FontWeight.normal,
                  //             fontFamily: 'Poppins',
                  //             fontSize:
                  //                 SizeConfig.textMultiplier! * 1.6,
                  //           ),
                  //         ],
                  //       ),
                  //     )),
                  //       Expanded(
                  //           child: InkWell(
                  //         onTap: () {
                  //           setState(() {
                  //             setState(() {
                  //               examinations?[index].selectedCondition =
                  //                   int.parse(examinations?[index]
                  //                       .conditionsList?[2]
                  //                       .conditionName ??
                  //                       "-1");
                  //             });
                  //           });
                  //
                  //         },
                  //         child: Row(
                  //           children: [
                  //             Container(
                  //               padding: EdgeInsets.all(2.0),
                  //               margin:
                  //                   EdgeInsets.symmetric(horizontal: 6),
                  //               width: 20,
                  //               height: 20,
                  //               decoration: BoxDecoration(
                  //                 color: Colors.white,
                  //                 shape: BoxShape.circle,
                  //                 border: Border.all(
                  //                     color: Colors.grey, width: 1),
                  //               ),
                  //               child: Container(
                  //                 decoration: BoxDecoration(
                  //                   color: examinations?[index].selectedCondition ==
                  //                       int.parse(examinations?[index]
                  //                           .conditionsList?[2]
                  //                           .conditionName ??
                  //                           "-1")
                  //                       ? HexColor("#D02127")
                  //                       : Colors.white,
                  //                   shape: BoxShape.circle,
                  //                 ),
                  //               ),
                  //             ),
                  //             Expanded(
                  //               child: AppText(
                  //                     examinations?[index]
                  //                         .conditionsList?[2]
                  //                         .conditionCode ??
                  //                         TranslationBase.of(context).notExamined,
                  //                 fontWeight: FontWeight.normal,
                  //                 fontFamily: 'Poppins',
                  //                 fontSize:
                  //                     SizeConfig.textMultiplier! * 1.6,
                  //               ),
                  //             ),
                  //           ],
                  //         ),
                  //       )),
                  //   ],
                  // ),
                  Container(
                    margin: EdgeInsets.only(top: 8),
                    child: AppTextFieldCustom(
                      hintText: TranslationBase.of(context).remarks,
                      controller: value.remarksController,
                      minLines: 2,
                      maxLines: 4,
                      inputType: TextInputType.multiline,
                      onChanged: (value) {},
                      onClick: () {},
                      onFieldSubmitted: () {},
                    ),
                  ),
                ],
              ),
            )
                : SizedBox.shrink(),
          ],
        ),)?.toList() ?? []
          // Expanded(
          //   child: ListView.builder(
          //     shrinkWrap: true,
          //     itemCount: examinations?.length ?? 0,
          //     itemBuilder: (context, index) => Column(
          //       children: [
          //         ListTileTheme(
          //           horizontalTitleGap: 0,
          //           child: CheckboxListTile(
          //             activeColor: Color(0xFFD02127),
          //             checkColor: Colors.white,
          //             contentPadding: EdgeInsets.zero,
          //             side: MaterialStateBorderSide.resolveWith(
          //               (Set<MaterialState> states) {
          //                 if (states.contains(MaterialState.selected)) {
          //                   return const BorderSide(color: Color(0xFFD02127));
          //                 }
          //                 return const BorderSide(color: Color(0xFFE6E6E6));
          //               },
          //             ),
          //             shape: RoundedRectangleBorder(
          //                 borderRadius: BorderRadius.circular(16)),
          //             value: examinations?[index].isSelected,
          //             controlAffinity: ListTileControlAffinity.leading,
          //             onChanged: (bool? value) {
          //               setState(() {
          //                 examinations?[index].isSelected = value ?? false;
          //               });
          //             },
          //             title: AppText(
          //               examinations![index].name!,
          //               color: Color(0XFF575757),
          //               fontSize: 14,
          //               fontWeight: FontWeight.w400,
          //             ),
          //           ),
          //         ),
          //         (examinations?[index].isSelected == true)
          //             ? Container(
          //                 padding: EdgeInsets.symmetric(horizontal: 12),
          //                 child: Column(
          //                   crossAxisAlignment: CrossAxisAlignment.start,
          //                   children: [
          //                     Container(
          //                       margin: EdgeInsets.only(bottom: 8),
          //                       child: AppText(
          //                         TranslationBase.of(context).condition,
          //                         fontWeight: FontWeight.bold,
          //                         fontFamily: 'Poppins',
          //                         fontSize: SizeConfig.textMultiplier! * 1.6,
          //                       ),
          //                     ),
          //                     SizedBox(
          //                       width: MediaQuery.sizeOf(context).width,
          //                       height: 24,
          //                       child: ListView.builder(
          //                           shrinkWrap: true,
          //                           scrollDirection: Axis.horizontal,
          //                           itemCount: examinations?[index]
          //                                   .conditionsList
          //                                   ?.length ??
          //                               0,
          //                           itemBuilder: (context, currentIndex) => InkWell(
          //                                 onTap: () {
          //                                   setState(() {
          //                                     examinations?[index]
          //                                             .selectedCondition =
          //                                         int.parse(examinations?[index]
          //                                                 .conditionsList?[
          //                                                     currentIndex]
          //                                                 .conditionName ??
          //                                             "-1");
          //                                   });
          //                                 },
          //                                 child: Row(
          //                                   children: [
          //                                     Container(
          //                                       padding: EdgeInsets.all(2.0),
          //                                       margin: EdgeInsets.symmetric(
          //                                           horizontal: 6),
          //                                       width: 20,
          //                                       height: 20,
          //                                       decoration: BoxDecoration(
          //                                         color: Colors.white,
          //                                         shape: BoxShape.circle,
          //                                         border: Border.all(
          //                                             color: Colors.grey, width: 1),
          //                                       ),
          //                                       child: Container(
          //                                         decoration: BoxDecoration(
          //                                           color: examinations?[index]
          //                                                       .selectedCondition ==
          //                                                   int.parse(examinations?[
          //                                                               index]
          //                                                           .conditionsList?[
          //                                                               currentIndex]
          //                                                           .conditionName ??
          //                                                       "-1")
          //                                               ? HexColor("#D02127")
          //                                               : Colors.white,
          //                                           shape: BoxShape.circle,
          //                                         ),
          //                                       ),
          //                                     ),
          //                                     AppText(
          //                                       examinations?[index]
          //                                               .conditionsList?[
          //                                                   currentIndex]
          //                                               .conditionCode ??
          //                                           '',
          //                                       fontWeight: FontWeight.normal,
          //                                       fontFamily: 'Poppins',
          //                                       fontSize:
          //                                           SizeConfig.textMultiplier! *
          //                                               1.6,
          //                                     ),
          //                                   ],
          //                                 ),
          //                               )),
          //                     ),
          //                     // Row(
          //                     //   children: [
          //                     //     if(examinations?[index]
          //                     //         .conditionsList?.length == 1)
          //                     //     Expanded(
          //                     //         child: InkWell(
          //                     //       onTap: () {
          //                     //         setState(() {
          //                     //           examinations?[index].selectedCondition =
          //                     //               int.parse(examinations?[index]
          //                     //                       .conditionsList?[0]
          //                     //                       .conditionName ??
          //                     //                   "-1");
          //                     //         });
          //                     //       },
          //                     //       child: Row(
          //                     //         children: [
          //                     //           Container(
          //                     //             padding: EdgeInsets.all(2.0),
          //                     //             margin:
          //                     //                 EdgeInsets.symmetric(horizontal: 6),
          //                     //             width: 20,
          //                     //             height: 20,
          //                     //             decoration: BoxDecoration(
          //                     //               color: Colors.white,
          //                     //               shape: BoxShape.circle,
          //                     //               border: Border.all(
          //                     //                   color: Colors.grey, width: 1),
          //                     //             ),
          //                     //             child: Container(
          //                     //               decoration: BoxDecoration(
          //                     //                 color: examinations?[index].selectedCondition ==
          //                     //                     int.parse(examinations?[index]
          //                     //                         .conditionsList?[0]
          //                     //                         .conditionName ??
          //                     //                         "-1")
          //                     //                     ? HexColor("#D02127")
          //                     //                     : Colors.white,
          //                     //                 shape: BoxShape.circle,
          //                     //               ),
          //                     //             ),
          //                     //           ),
          //                     //           AppText(
          //                     //             examinations?[index]
          //                     //                 .conditionsList?[0]
          //                     //                 .conditionCode ??
          //                     //                 TranslationBase.of(context).normal,
          //                     //             fontWeight: FontWeight.normal,
          //                     //             fontFamily: 'Poppins',
          //                     //             fontSize:
          //                     //                 SizeConfig.textMultiplier! * 1.6,
          //                     //           ),
          //                     //         ],
          //                     //       ),
          //                     //     )),
          //                     //     Expanded(
          //                     //         child: InkWell(
          //                     //       onTap: () {
          //                     //         setState(() {
          //                     //           setState(() {
          //                     //             examinations?[index].selectedCondition =
          //                     //                 int.parse(examinations?[index]
          //                     //                     .conditionsList?[1]
          //                     //                     .conditionName ??
          //                     //                     "-1");
          //                     //           });
          //                     //         });
          //                     //       },
          //                     //       child: Row(
          //                     //         children: [
          //                     //           Container(
          //                     //             padding: EdgeInsets.all(2.0),
          //                     //             margin:
          //                     //                 EdgeInsets.symmetric(horizontal: 6),
          //                     //             width: 20,
          //                     //             height: 20,
          //                     //             decoration: BoxDecoration(
          //                     //               color: Colors.white,
          //                     //               shape: BoxShape.circle,
          //                     //               border: Border.all(
          //                     //                   color: Colors.grey, width: 1),
          //                     //             ),
          //                     //             child: Container(
          //                     //               decoration: BoxDecoration(
          //                     //                 color: examinations?[index].selectedCondition ==
          //                     //                     int.parse(examinations?[index]
          //                     //                         .conditionsList?[1]
          //                     //                         .conditionName ??
          //                     //                         "-1")
          //                     //                     ? HexColor("#D02127")
          //                     //                     : Colors.white,
          //                     //                 shape: BoxShape.circle,
          //                     //               ),
          //                     //             ),
          //                     //           ),
          //                     //           AppText(
          //                     //             examinations?[index]
          //                     //                 .conditionsList?[1]
          //                     //                 .conditionCode ??
          //                     //                 TranslationBase.of(context).abnormal,
          //                     //             fontWeight: FontWeight.normal,
          //                     //             fontFamily: 'Poppins',
          //                     //             fontSize:
          //                     //                 SizeConfig.textMultiplier! * 1.6,
          //                     //           ),
          //                     //         ],
          //                     //       ),
          //                     //     )),
          //                     //       Expanded(
          //                     //           child: InkWell(
          //                     //         onTap: () {
          //                     //           setState(() {
          //                     //             setState(() {
          //                     //               examinations?[index].selectedCondition =
          //                     //                   int.parse(examinations?[index]
          //                     //                       .conditionsList?[2]
          //                     //                       .conditionName ??
          //                     //                       "-1");
          //                     //             });
          //                     //           });
          //                     //
          //                     //         },
          //                     //         child: Row(
          //                     //           children: [
          //                     //             Container(
          //                     //               padding: EdgeInsets.all(2.0),
          //                     //               margin:
          //                     //                   EdgeInsets.symmetric(horizontal: 6),
          //                     //               width: 20,
          //                     //               height: 20,
          //                     //               decoration: BoxDecoration(
          //                     //                 color: Colors.white,
          //                     //                 shape: BoxShape.circle,
          //                     //                 border: Border.all(
          //                     //                     color: Colors.grey, width: 1),
          //                     //               ),
          //                     //               child: Container(
          //                     //                 decoration: BoxDecoration(
          //                     //                   color: examinations?[index].selectedCondition ==
          //                     //                       int.parse(examinations?[index]
          //                     //                           .conditionsList?[2]
          //                     //                           .conditionName ??
          //                     //                           "-1")
          //                     //                       ? HexColor("#D02127")
          //                     //                       : Colors.white,
          //                     //                   shape: BoxShape.circle,
          //                     //                 ),
          //                     //               ),
          //                     //             ),
          //                     //             Expanded(
          //                     //               child: AppText(
          //                     //                     examinations?[index]
          //                     //                         .conditionsList?[2]
          //                     //                         .conditionCode ??
          //                     //                         TranslationBase.of(context).notExamined,
          //                     //                 fontWeight: FontWeight.normal,
          //                     //                 fontFamily: 'Poppins',
          //                     //                 fontSize:
          //                     //                     SizeConfig.textMultiplier! * 1.6,
          //                     //               ),
          //                     //             ),
          //                     //           ],
          //                     //         ),
          //                     //       )),
          //                     //   ],
          //                     // ),
          //                     Container(
          //                       margin: EdgeInsets.only(top: 8),
          //                       child: AppTextFieldCustom(
          //                         hintText: TranslationBase.of(context).remarks,
          //                         controller: examinations?[index].remarksController,
          //                         minLines: 2,
          //                         maxLines: 4,
          //                         inputType: TextInputType.multiline,
          //                         onChanged: (value) {},
          //                         onClick: () {},
          //                         onFieldSubmitted: () {},
          //                       ),
          //                     ),
          //                   ],
          //                 ),
          //               )
          //             : SizedBox.shrink(),
          //       ],
          //     ),
          //   ),
          // ),
        // ],
      ),
    );
  }
}
