import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:gifunavi/pages/index/index_controller.dart';
import 'package:gifunavi/widgets/debug_widget.dart';

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

  LogManager logManager = LogManager();

  IndexController indexController = Get.find<IndexController>();

  TextEditingController oldPasswordController = TextEditingController();
  TextEditingController newPasswordController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        resizeToAvoidBottomInset: false,
        backgroundColor: Colors.white,
        appBar: AppBar(
          elevation: 0,
          backgroundColor: Colors.white,
          leading: IconButton(
              onPressed: () {
                logManager.addOperationLog('User clicked cancel button on the drawer');
                Navigator.pop(context);
              },
              icon: const Icon(
                Icons.arrow_back_ios,
                size: 20,
                color: Colors.black,
              )),
        ),
        body: SizedBox(
          width: double.infinity,
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              Column(
                children: [
                  Column(
                    children: [
                      Text(
                        "change_password".tr,
                        style: const TextStyle(fontSize: 24.0),
                      ),
                      const SizedBox(
                        height: 30,
                      ),
                    ],
                  ),
                  Padding(
                    padding: const EdgeInsets.symmetric(horizontal: 40),
                    child: Column(
                      children: [
                        makeInput(
                            label: "old_password".tr,
                            controller: oldPasswordController),
                        makeInput(
                            label: "new_password".tr,
                            controller: newPasswordController,
                            obsureText: true),
                      ],
                    ),
                  ),
                  Padding(
                      padding: const EdgeInsets.symmetric(horizontal: 40),
                      child: Container(
                        padding: const EdgeInsets.only(top: 3, left: 3),
                        decoration: BoxDecoration(
                          borderRadius: BorderRadius.circular(40),
                        ),
                        child: Obx(
                          (() => indexController.isLoading.value == true
                              ? MaterialButton(
                                  minWidth: double.infinity,
                                  height: 60,
                                  onPressed: () {},
                                  color: Colors.grey[400],
                                  shape: RoundedRectangleBorder(
                                      borderRadius: BorderRadius.circular(40)),
                                  child: const CircularProgressIndicator(),
                                )
                              : Column(
                                  children: [
                                    MaterialButton(
                                      minWidth: double.infinity,
                                      height: 60,
                                      onPressed: () {
                                        if (oldPasswordController
                                                .text.isEmpty ||
                                            newPasswordController
                                                .text.isEmpty) {
                                          logManager.addOperationLog('User tried to login with blank old password ${oldPasswordController.text} or new password ${newPasswordController.text}.');
                                          Get.snackbar(
                                            "no_values".tr,
                                            "values_required".tr,
                                              backgroundColor: Colors.red,
                                              colorText: Colors.white,
                                              icon: const Icon(
                                                Icons.assistant_photo_outlined,
                                                size: 40.0,
                                                color: Colors.blue),
                                            snackPosition: SnackPosition.TOP,
                                            duration: const Duration(
                                                milliseconds: 800),
                                            //backgroundColor: Colors.yellow,
                                            //icon:Image(image:AssetImage("assets/images/dora.png"))
                                          );
                                          return;
                                        }
                                        indexController.isLoading.value = true;
                                        indexController.changePassword(
                                            oldPasswordController.text,
                                            newPasswordController.text,
                                            context);
                                        //indexController.login(oldPasswordController.text, newPasswordController.text, context);
                                      },
                                      color: Colors.indigoAccent[400],
                                      shape: RoundedRectangleBorder(
                                          borderRadius:
                                              BorderRadius.circular(40)),
                                      child: Text(
                                        "login".tr,
                                        style: const TextStyle(
                                            fontWeight: FontWeight.w600,
                                            fontSize: 16,
                                            color: Colors.white70),
                                      ),
                                    ),
                                    const SizedBox(
                                      height: 10.0,
                                    ),
                                  ],
                                )),
                        ),
                      )),
                  const SizedBox(
                    height: 20,
                  ),
                  const Row(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: [],
                  )
                ],
              ),
            ],
          ),
        ));
  }

  Widget makeInput(
      {label, required TextEditingController controller, obsureText = false}) {
    return Column(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        Text(
          label,
          style: const TextStyle(
              fontSize: 15, fontWeight: FontWeight.w400, color: Colors.black87),
        ),
        const SizedBox(
          height: 5,
        ),
        TextField(
          controller: controller,
          obscureText: obsureText,
          decoration: InputDecoration(
            contentPadding:
                const EdgeInsets.symmetric(vertical: 0, horizontal: 10),
            enabledBorder: OutlineInputBorder(
              borderSide: BorderSide(
                color: (Colors.grey[400])!,
              ),
            ),
            border: OutlineInputBorder(
              borderSide: BorderSide(color: (Colors.grey[400])!),
            ),
          ),
        ),
        const SizedBox(
          height: 30.0,
        )
      ],
    );
  }
}
