import 'package:flutter/material.dart';
import 'package:flutter_dmzj/app/app_style.dart';
import 'package:flutter_dmzj/modules/user/login/user_login_controller.dart';
import 'package:get/get.dart';

class UserLoginDialog extends StatelessWidget {
  final UserLoginController controller = Get.put(UserLoginController());
  UserLoginDialog({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Dialog(
      shape: RoundedRectangleBorder(
        borderRadius: AppStyle.radius12,
      ),
      child: Container(
        constraints: const BoxConstraints(
          maxWidth: 400,
        ),
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            ListTile(
              contentPadding: AppStyle.edgeInsetsL12,
              title: const Text("登录"),
              trailing: IconButton(
                onPressed: Get.back,
                icon: const Icon(Icons.close),
              ),
            ),
            AppStyle.vGap12,
            Padding(
              padding: AppStyle.edgeInsetsH24,
              child: TextField(
                controller: controller.userNameController,
                autofocus: true,
                textInputAction: TextInputAction.next,
                decoration: const InputDecoration(
                  hintText: "请输入用户名/手机号",
                  labelText: "用户名/手机号",
                  floatingLabelBehavior: FloatingLabelBehavior.always,
                  contentPadding: AppStyle.edgeInsetsH8,
                  border: OutlineInputBorder(),
                ),
              ),
            ),
            AppStyle.vGap24,
            Padding(
              padding: AppStyle.edgeInsetsH24,
              child: TextField(
                controller: controller.passwordController,
                obscureText: true,
                textInputAction: TextInputAction.done,
                decoration: const InputDecoration(
                  hintText: "请输入密码",
                  labelText: "密码",
                  floatingLabelBehavior: FloatingLabelBehavior.always,
                  contentPadding: AppStyle.edgeInsetsH8,
                  border: OutlineInputBorder(),
                ),
                onSubmitted: (e) {
                  controller.login();
                },
              ),
            ),
            AppStyle.vGap12,
            Container(
              width: double.infinity,
              padding: AppStyle.edgeInsetsA12.copyWith(left: 24, right: 24),
              child: SizedBox(
                height: 40,
                child: Obx(
                  () => ElevatedButton(
                    style: ElevatedButton.styleFrom(
                      elevation: 0,
                      shape: RoundedRectangleBorder(
                        borderRadius: AppStyle.radius24,
                      ),
                    ),
                    onPressed:
                        controller.loadding.value ? null : controller.login,
                    child: controller.loadding.value
                        ? const SizedBox(
                            width: 24,
                            height: 24,
                            child: CircularProgressIndicator(
                              color: Colors.white,
                            ),
                          )
                        : const Text("登录"),
                  ),
                ),
              ),
            ),
            AppStyle.vGap12,
          ],
        ),
      ),
    );
  }
}
