import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:sefer_driver/controller/home/captin/help/help_controller.dart';
import 'package:sefer_driver/views/home/Captin/home_captain/help_details_replay_page.dart';

import 'package:flutter/cupertino.dart';

import '../../../../constant/colors.dart';
import '../../../../controller/functions/encrypt_decrypt.dart';
import '../../../widgets/my_scafold.dart';

class HelpCaptain extends StatelessWidget {
  HelpCaptain({super.key});

  @override
  Widget build(BuildContext context) {
    Get.put(HelpController());
    final theme = Theme.of(context);

    return MyScafolld(
      title: 'Helping Page'.tr,
      isleading: true,
      body: [
        SingleChildScrollView(
          padding: const EdgeInsets.all(20.0),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.stretch,
            children: [
              Container(
                padding: const EdgeInsets.all(18.0),
                decoration: BoxDecoration(
                  color: theme.colorScheme.surfaceVariant.withOpacity(0.5),
                  borderRadius: BorderRadius.circular(15.0),
                  border: Border.all(color: theme.dividerColor),
                ),
                child: Text(
                  'If you need any help or have questions, this is the right place to do that. You are welcome!'
                      .tr,
                  style: theme.textTheme.bodyLarge,
                  textAlign: TextAlign.center,
                ),
              ),
              const SizedBox(height: 24),
              Text(
                'Submit Your Question'.tr,
                style: theme.textTheme.titleMedium
                    ?.copyWith(fontWeight: FontWeight.bold),
              ),
              const SizedBox(height: 12),
              GetBuilder<HelpController>(
                builder: (helpController) => Form(
                  key: helpController.formKey,
                  child: Column(
                    children: [
                      TextFormField(
                        controller: helpController.helpQuestionController,
                        decoration: InputDecoration(
                          hintText: 'Enter your Question here'.tr,
                          prefixIcon:
                              const Icon(Icons.question_answer_outlined),
                          border: OutlineInputBorder(
                              borderRadius: BorderRadius.circular(12)),
                        ),
                        maxLines: 3,
                        validator: (value) {
                          if (value == null || value.isEmpty) {
                            return 'Please enter your question'.tr;
                          }
                          return null;
                        },
                      ),
                      const SizedBox(height: 16),
                      helpController.isLoading
                          ? const Center(child: CircularProgressIndicator())
                          : SizedBox(
                              width: double.infinity,
                              child: ElevatedButton(
                                onPressed: () {
                                  if (helpController.formKey.currentState!
                                      .validate()) {
                                    helpController.addHelpQuestion();
                                    helpController.helpQuestionController
                                        .clear();
                                  }
                                },
                                style: ElevatedButton.styleFrom(
                                  backgroundColor: AppColor.primaryColor,
                                  foregroundColor: Colors.white,
                                  padding:
                                      const EdgeInsets.symmetric(vertical: 14),
                                  shape: RoundedRectangleBorder(
                                      borderRadius: BorderRadius.circular(12)),
                                ),
                                child: Text('Submit Question'.tr),
                              ),
                            ),
                    ],
                  ),
                ),
              ),
              const SizedBox(height: 32),
              Text(
                'Your Questions'.tr,
                style: theme.textTheme.titleMedium
                    ?.copyWith(fontWeight: FontWeight.bold),
              ),
              const SizedBox(height: 12),
              GetBuilder<HelpController>(
                builder: (helpController) {
                  final questions = helpController.helpQuestionDate['message'];
                  if (questions == null || questions.isEmpty) {
                    return Center(
                      child: Padding(
                        padding: const EdgeInsets.all(20.0),
                        child: Text('No questions asked yet.'.tr),
                      ),
                    );
                  }
                  return ListView.separated(
                    shrinkWrap: true,
                    physics: const NeverScrollableScrollPhysics(),
                    itemCount: questions.length,
                    separatorBuilder: (context, index) =>
                        const SizedBox(height: 12),
                    itemBuilder: (context, index) {
                      var list = questions[index];
                      return Card(
                        elevation: 0,
                        shape: RoundedRectangleBorder(
                          borderRadius: BorderRadius.circular(12),
                          side: BorderSide(color: theme.dividerColor),
                        ),
                        child: ListTile(
                          title: Text(
                            EncryptionHelper.instance
                                .decryptData(list['helpQuestion']),
                            style: const TextStyle(fontWeight: FontWeight.w500),
                            maxLines: 2,
                            overflow: TextOverflow.ellipsis,
                          ),
                          subtitle: Text(
                            list['datecreated'],
                            style: theme.textTheme.bodySmall,
                          ),
                          trailing:
                              const Icon(Icons.arrow_forward_ios, size: 16),
                          onTap: () {
                            helpController.getIndex(
                                int.parse(EncryptionHelper.instance
                                    .decryptData(list['id'])),
                                EncryptionHelper.instance
                                    .decryptData(list['helpQuestion']));
                            helpController.getHelpRepley(list['id'].toString());
                            Get.to(() => const HelpDetailsReplayPage());
                          },
                        ),
                      );
                    },
                  );
                },
              ),
            ],
          ),
        ),
      ],
    );
  }
}

// class HelpCaptain extends StatelessWidget {
//   HelpCaptain({super.key});

//   @override
//   Widget build(BuildContext context) {
//     Get.put(HelpController());
//     return CupertinoPageScaffold(
//       navigationBar: CupertinoNavigationBar(
//         middle: Text('Helping Page'.tr),
//         leading: CupertinoButton(
//           padding: EdgeInsets.zero,
//           child: Icon(CupertinoIcons.back),
//           onPressed: () => Navigator.pop(context),
//         ),
//       ),
//       child: SafeArea(
//         child: Padding(
//           padding: const EdgeInsets.all(16.0),
//           child: Column(
//             children: [
//               Padding(
//                 padding: const EdgeInsets.symmetric(vertical: 12.0),
//                 child: Container(
//                   padding: const EdgeInsets.all(16.0),
//                   decoration: BoxDecoration(
//                     borderRadius: BorderRadius.circular(12.0),
//                     border: Border.all(
//                       color: CupertinoColors.systemGrey2,
//                     ),
//                   ),
//                   child: Text(
//                     'If you need any help or have questions, this is the right place to do that. You are welcome!'
//                         .tr,
//                     style: CupertinoTheme.of(context).textTheme.textStyle,
//                     textAlign: TextAlign.center,
//                   ),
//                 ),
//               ),
//               Card(
//                 elevation: 3,
//                 color: CupertinoColors.systemGrey6,
//                 shape: RoundedRectangleBorder(
//                   borderRadius: BorderRadius.circular(12.0),
//                 ),
//                 child: Padding(
//                   padding: const EdgeInsets.all(16.0),
//                   child: GetBuilder<HelpController>(
//                     builder: (helpController) => Form(
//                       key: helpController.formKey,
//                       child: Column(
//                         children: [
//                           CupertinoTextField(
//                             controller: helpController.helpQuestionController,
//                             placeholder: 'Enter your Question here'.tr,
//                             decoration: BoxDecoration(
//                               borderRadius: BorderRadius.circular(12),
//                               border: Border.all(
//                                 color: CupertinoColors.systemGrey,
//                               ),
//                             ),
//                             padding: const EdgeInsets.all(16),
//                             clearButtonMode: OverlayVisibilityMode.editing,
//                           ),
//                           const SizedBox(height: 20),
//                           helpController.isLoading
//                               ? const CupertinoActivityIndicator()
//                               : CupertinoButton.filled(
//                                   onPressed: () {
//                                     if (helpController.formKey.currentState!
//                                         .validate()) {
//                                       helpController.addHelpQuestion();

//                                       // Clear the feedback form
//                                       helpController.formKey.currentState!
//                                           .reset();
//                                     }
//                                   },
//                                   child: Text('Submit Question'.tr),
//                                 ),
//                         ],
//                       ),
//                     ),
//                   ),
//                 ),
//               ),
//               const SizedBox(height: 20),
//               Expanded(
//                 child: GetBuilder<HelpController>(
//                   builder: (helpController) => Padding(
//                     padding: const EdgeInsets.all(10),
//                     child: Container(
//                       decoration: BoxDecoration(
//                         border: Border.all(
//                           color: CupertinoColors.systemGrey2,
//                         ),
//                         borderRadius: BorderRadius.circular(12.0),
//                       ),
//                       child: ListView.builder(
//                         itemCount: helpController.helpQuestionDate['message'] !=
//                                 null
//                             ? helpController.helpQuestionDate['message'].length
//                             : 0,
//                         itemBuilder: (BuildContext context, int index) {
//                           var list =
//                               helpController.helpQuestionDate['message'][index];
//                           return Padding(
//                             padding: const EdgeInsets.all(3),
//                             child: Container(
//                               padding: const EdgeInsets.symmetric(
//                                   vertical: 12, horizontal: 16),
//                               decoration: BoxDecoration(
//                                 border: Border.all(
//                                   color: CupertinoColors.activeGreen,
//                                   width: 2,
//                                 ),
//                                 borderRadius: BorderRadius.circular(12),
//                               ),
//                               child: GestureDetector(
//                                 onTap: () {
//                                   helpController.getIndex(
//                                       list['id'], list['helpQuestion']);
//                                   helpController
//                                       .getHelpRepley(list['id'].toString());
//                                   Get.to(() => const HelpDetailsReplayPage());
//                                 },
//                                 child: Row(
//                                   mainAxisAlignment:
//                                       MainAxisAlignment.spaceBetween,
//                                   children: [
//                                     Expanded(
//                                       child: Text(
//                                         list['helpQuestion'],
//                                         style: CupertinoTheme.of(context)
//                                             .textTheme
//                                             .textStyle,
//                                         overflow: TextOverflow.ellipsis,
//                                       ),
//                                     ),
//                                     Text(
//                                       list['datecreated'],
//                                       style: CupertinoTheme.of(context)
//                                           .textTheme
//                                           .tabLabelTextStyle,
//                                     ),
//                                   ],
//                                 ),
//                               ),
//                             ),
//                           );
//                         },
//                       ),
//                     ),
//                   ),
//                 ),
//               ),
//             ],
//           ),
//         ),
//       ),
//     );
//   }
// }
