

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:rogapp/pages/index/index_controller.dart';
import 'package:rogapp/routes/app_pages.dart';

class RegisterPage extends StatelessWidget {

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

  TextEditingController emailController = TextEditingController();
  TextEditingController passwordController = TextEditingController();
  TextEditingController confirmPasswordController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      resizeToAvoidBottomInset: false,
      backgroundColor: Colors.white,
      appBar: AppBar(
        elevation: 0,
        brightness: Brightness.light,
        backgroundColor: Colors.white,
        leading:
        IconButton( onPressed: (){
          Navigator.pop(context);
        },icon:Icon(Icons.arrow_back_ios,size: 20,color: Colors.black,)),
      ),
      body: SafeArea(
        child: SingleChildScrollView(
          child: Container(
            height: MediaQuery.of(context).size.height,
            width: double.infinity,
            child: Column(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: [
                Column(
                  children: [
                    Column(
                      mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                      children: [
                        Text ("サインアップ", style: TextStyle(
                          fontSize: 30,
                          fontWeight: FontWeight.bold,
                        ),),
                        SizedBox(height: 20,),
                        Text("アカウントを作成し、無料です",style: TextStyle(
                          fontSize: 15,
                          color: Colors.grey[700],
                        ),),
                        SizedBox(height: 30,)
                      ],
                    ),
                    Padding(
                      padding: EdgeInsets.symmetric(
                          horizontal: 40
                      ),
                      child: Column(
                        children: [
                          makeInput(label: "Eメール", controller: emailController),
                          makeInput(label: "パスワード", controller: passwordController,obsureText: true),
                          makeInput(label: "パスワードを認証する", controller: confirmPasswordController,obsureText: true)
                        ],
                      ),
                    ),
                    Padding(
                      padding: EdgeInsets.symmetric(horizontal: 40),
                      child: Container(
                        padding: EdgeInsets.only(top: 3,left: 3),
                        decoration: BoxDecoration(
                            borderRadius: BorderRadius.circular(40),
                            border: Border(
                                bottom: BorderSide(color: Colors.black),
                                top: BorderSide(color: Colors.black),
                                right: BorderSide(color: Colors.black),
                                left: BorderSide(color: Colors.black)
                            )
                        ),
                        child: MaterialButton(
                          minWidth: double.infinity,
                          height:60,
                          onPressed: (){
                            if(passwordController.text != confirmPasswordController.text){
                              Get.snackbar(
                                "No match",
                                 "Passwords does not match",
                                icon: Icon(Icons.assistant_photo_outlined, size: 40.0, color: Colors.blue),
                                snackPosition: SnackPosition.TOP,
                                duration: Duration(milliseconds: 800),
                                backgroundColor: Colors.yellow,
                                //icon:Image(image:AssetImage("assets/images/dora.png"))
                              );
                            }
                            if(emailController.text.isEmpty || passwordController.text.isEmpty){
                              Get.snackbar(
                                "no_values".tr,
                                 "email_and_password_required".tr,
                                icon: Icon(Icons.assistant_photo_outlined, size: 40.0, color: Colors.blue),
                                snackPosition: SnackPosition.TOP,
                                duration: Duration(milliseconds: 800),
                                backgroundColor: Colors.yellow,
                                //icon:Image(image:AssetImage("assets/images/dora.png"))
                              );
                              return;
                            }
                            indexController.is_loading.value = true;
                            indexController.register(emailController.text, passwordController.text, context);
                          },
                          color: Colors.redAccent,
                          shape: RoundedRectangleBorder(
                              borderRadius: BorderRadius.circular(40)
                          ),
                          child: Text("sign_up".tr,style: TextStyle(
                            fontWeight: FontWeight.w600,fontSize: 16,

                          ),),
                        ),
                      ),
                    ),
                    SizedBox(height: 20,),
                    Row(
                      mainAxisAlignment: MainAxisAlignment.center,
                      children: [
                        Flexible(child: Text("すでにアカウントをお持ちですか？")),
                        TextButton(
                          onPressed: (){
                            Get.toNamed(AppPages.LOGIN);
                          },
                          child: Text("ログイン",style: TextStyle(
                              fontWeight: FontWeight.w600,
                              fontSize: 18
                          ),),
                        ),
                      ],
                    )
                  ],

                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

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

    ],
  );
}
