import 'package:cs_resources/generated/assets.dart';
import 'package:cs_resources/generated/l10n.dart';
import 'package:cs_resources/theme/app_colors_theme.dart';
import 'package:flutter/material.dart';
import 'package:auto_route/auto_route.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:router/ext/auto_router_extensions.dart';
import 'package:widgets/ext/ex_widget.dart';
import 'package:widgets/my_appbar.dart';
import 'package:widgets/my_button.dart';
import 'package:widgets/my_load_image.dart';
import 'package:widgets/my_text_field.dart';
import 'package:widgets/my_text_view.dart';
import 'package:widgets/shatter/picker_container.dart';
import 'package:widgets/widget_export.dart';

import '../../router/page/auth_page_router.dart';
import 'select_unit_state.dart';
import 'select_unit_view_model.dart';

@RoutePage()
class SelectUnitPage extends HookConsumerWidget {

  const SelectUnitPage({Key? key,}) : super(key: key);

  //启动当前页面
  static void startInstance({BuildContext? context}) {
    if (context != null) {
      context.router.push(const SelectUnitPageRoute());
    } else {
      appRouter.push(const SelectUnitPageRoute());
    }
  }

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final viewModel = ref.watch(selectUnitViewModelProvider.notifier);
    final state = ref.watch(selectUnitViewModelProvider);

    return Scaffold(
      appBar: MyAppBar.appBar(context, S.current.yy_home_accounts),
      backgroundColor: context.appColors.backgroundDefault,
      body: Container(
        padding: const EdgeInsets.symmetric(horizontal: 20),
        width: double.infinity,
        child: Column(
          mainAxisSize: MainAxisSize.max,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            SingleChildScrollView(
                scrollDirection: Axis.vertical,
                physics: const BouncingScrollPhysics(),
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: [
                    //顶部图片
                    const MyAssetImage(
                      Assets.authSignUpUnitImg,
                      width: 266.5,
                      height: 162,
                    ).marginOnly(top: 28, bottom: 18),

                    // Row(
                    //   mainAxisSize: MainAxisSize.min,
                    //   children: [
                    //     //街区
                    //     Column(
                    //       crossAxisAlignment: CrossAxisAlignment.start,
                    //       children: [
                    //         MyTextView(
                    //           S.current.block,
                    //           marginBottom: 9,
                    //           textColor: context.appColors.textBlack,
                    //           fontSize: 16,
                    //           isFontMedium: true,
                    //         ),
                    //
                    //         // 表单 - 街区
                    //         _buildInputLayout(
                    //           context,
                    //           state,
                    //           "block",
                    //           textInputType: TextInputType.text,
                    //           textInputAction: TextInputAction.next,
                    //           onSubmit: (formKey, value) {
                    //             state.formData[formKey]!['focusNode'].unfocus();
                    //             FocusScope.of(context).requestFocus(state.formData['unit']!['focusNode']);
                    //           },
                    //         ).constrained(width: 88),
                    //       ],
                    //     ),
                    //
                    //     MyTextView(
                    //       "#",
                    //       marginTop: 20,
                    //       marginLeft: 8.5,
                    //       marginRight: 8.5,
                    //       textColor: context.appColors.textBlack,
                    //       fontSize: 16,
                    //       isFontMedium: true,
                    //     ),
                    //
                    //     //单元
                    //     Column(
                    //       crossAxisAlignment: CrossAxisAlignment.start,
                    //       children: [
                    //         MyTextView(
                    //           S.current.unit_number,
                    //           marginBottom: 9,
                    //           textColor: context.appColors.textBlack,
                    //           fontSize: 16,
                    //           isFontMedium: true,
                    //         ),
                    //         Row(
                    //           children: [
                    //             // 表单 - 单元
                    //             _buildInputLayout(
                    //               context,
                    //               state,
                    //               "unit",
                    //               textInputAction: TextInputAction.next,
                    //               onSubmit: (formKey, value) {
                    //                 state.formData[formKey]!['focusNode'].unfocus();
                    //                 FocusScope.of(context).requestFocus(state.formData['room']!['focusNode']);
                    //               },
                    //             ).constrained(width: 83),
                    //
                    //             MyTextView(
                    //               "-",
                    //               textColor: context.appColors.textBlack,
                    //               marginLeft: 4,
                    //               marginRight: 4,
                    //               isFontMedium: true,
                    //             ),
                    //
                    //             // 表单 - 房号
                    //             _buildInputLayout(
                    //               context,
                    //               state,
                    //               "room",
                    //               textInputAction: TextInputAction.done,
                    //               onSubmit: (formKey, value) {
                    //                 state.formData[formKey]!['focusNode'].unfocus();
                    //               },
                    //             ).constrained(width: 83),
                    //           ],
                    //         ),
                    //       ],
                    //     ),
                    //   ],
                    // ),

                    //选择
                    Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        MyTextView(
                          S.current.unit_number,
                          marginBottom: 9,
                          marginLeft: 17,
                          textColor: context.appColors.textBlack,
                          fontSize: 16,
                          isFontMedium: true,
                        ),

                        PickerContainer(
                          hint: 'Please Select',
                          enable: true,
                          content: state.selectedUnitName ?? "",
                          onClick: (context) {
                            viewModel.pickUnit(context);
                          },
                        ).marginOnly(left: 17, right: 17),

                      ],
                    ),

                    MyTextView(
                      S.current.block_desc,
                      fontSize: 15,
                      marginTop: 25,
                      textAlign: TextAlign.center,
                      isFontMedium: true,
                      textColor: context.appColors.textBlack,
                    ),

                    MyTextView(
                      S.current.block_example,
                      fontSize: 15,
                      marginTop: 20,
                      textAlign: TextAlign.center,
                      isFontMedium: true,
                      textColor: context.appColors.textBlack,
                    ),

                    MyTextView(
                      S.current.block_example_desc,
                      fontSize: 15,
                      marginTop: 20,
                      textAlign: TextAlign.center,
                      isFontMedium: true,
                      textColor: context.appColors.textBlack,
                    ),
                  ],
                )).expanded(),
            MyButton(
              onPressed: (){
                viewModel.submitUnit();
              },
              text: S.current.next,
              textColor: Colors.white,
              backgroundColor: context.appColors.btnBgDefault,
              fontWeight: FontWeight.w500,
              type: ClickType.throttle,
              fontSize: 16,
              minHeight: 50,
              radius: 5,
            ).marginOnly(top: 50, bottom: 50, left: 18, right: 18),
          ],
        ),
      ),
    );
  }

  // /// 输入框
  // Widget _buildInputLayout(
  //   BuildContext context,
  //   SelectUnitState state,
  //   String key, {
  //   double marginTop = 0,
  //   bool? showRightIcon = false, //是否展示右侧的布局
  //   Widget? rightWidget, //右侧的布局
  //   TextInputType textInputType = TextInputType.number,
  //   String? errorText,
  //   bool obscureText = false,
  //   TextInputAction textInputAction = TextInputAction.done,
  //   Function? onSubmit,
  // }) {
  //   return IgnoreKeyboardDismiss(
  //     child: MyTextField(
  //       key,
  //       fillBackgroundColor: context.appColors.authFiledBG,
  //       state.formData[key]!['value'],
  //       hintText: state.formData[key]!['hintText'],
  //       hintStyle: TextStyle(
  //         color: context.appColors.authFiledHint,
  //         fontSize: 16.0,
  //         fontWeight: FontWeight.w500,
  //       ),
  //       controller: state.formData[key]!['controller'],
  //       focusNode: state.formData[key]!['focusNode'],
  //       margin: EdgeInsets.only(top: marginTop),
  //       padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 3),
  //       showDivider: false,
  //       height: 44,
  //       style: TextStyle(
  //         color: context.appColors.authFiledText,
  //         fontSize: 16.0,
  //         fontWeight: FontWeight.w500,
  //       ),
  //       inputType: textInputType,
  //       textInputAction: textInputAction,
  //       onSubmit: onSubmit,
  //       cursorColor: context.appColors.authFiledText,
  //       obscureText: obscureText,
  //       errorText: errorText,
  //       showLeftIcon: true,
  //       showRightIcon: showRightIcon,
  //       rightWidget: rightWidget,
  //     ),
  //   );
  // }
}
