auth_login_state.dart 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * 登录的状态类
  3. */
  4. import 'package:cs_resources/generated/l10n.dart';
  5. import 'package:flutter/material.dart';
  6. class LoginState {
  7. //表单的校验与数据
  8. final Map<String, Map<String, dynamic>> formData;
  9. //表单的错误信息展示
  10. String? accountErrorText;
  11. String? passwordErrorText;
  12. String? countryCode;
  13. //是否明文展示密码
  14. bool pwdVisibility;
  15. //登录按钮是否可用
  16. bool isLoginBtnEnable;
  17. bool isAgreeTerms;
  18. // =================================== Begin ↓ ===================================
  19. LoginState({
  20. Map<String, Map<String, dynamic>>? formData,
  21. this.accountErrorText,
  22. this.passwordErrorText,
  23. this.pwdVisibility = false,
  24. this.isLoginBtnEnable = false,
  25. this.isAgreeTerms = false,
  26. this.countryCode,
  27. }) : formData = formData ??
  28. {
  29. 'account': {
  30. 'value': '',
  31. 'controller': TextEditingController(),
  32. 'hintText': S.current.phone_email,
  33. 'focusNode': FocusNode(),
  34. 'obsecure': false,
  35. },
  36. 'password': {
  37. 'value': '',
  38. 'controller': TextEditingController(),
  39. 'hintText': S.current.password,
  40. 'focusNode': FocusNode(),
  41. 'obsecure': true,
  42. },
  43. };
  44. LoginState copyWith({
  45. String? accountErrorText,
  46. String? passwordErrorText,
  47. String? account,
  48. String? password,
  49. bool? pwdVisibility,
  50. bool? isLoginBtnEnable,
  51. bool? isAgreeTerms,
  52. String? countryCode,
  53. }) {
  54. return LoginState(
  55. formData: this.formData,
  56. accountErrorText: accountErrorText,
  57. passwordErrorText: passwordErrorText,
  58. pwdVisibility: pwdVisibility ?? this.pwdVisibility,
  59. isLoginBtnEnable: isLoginBtnEnable ?? this.isLoginBtnEnable,
  60. isAgreeTerms: isAgreeTerms ?? this.isLoginBtnEnable,
  61. countryCode: countryCode ?? this.countryCode,
  62. );
  63. }
  64. }