sign_up_state.dart 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. import 'package:cs_resources/generated/l10n.dart';
  2. import 'package:flutter/material.dart';
  3. class SignUpState {
  4. //表单的校验与数据
  5. final Map<String, Map<String, dynamic>> formData;
  6. //表单的错误信息展示
  7. String? firstNameErrorText;
  8. String? lastNameErrorText;
  9. String? emailErrorText;
  10. String? phoneErrorText;
  11. String? passwordErrorText;
  12. String? confirmPasswordErrorText;
  13. String? countryCode;
  14. //是否明文展示密码
  15. bool pwdVisibility;
  16. bool confirmPwdVisibility;
  17. bool isAgreeTerms;
  18. // =================================== Begin ↓ ===================================
  19. SignUpState({
  20. Map<String, Map<String, dynamic>>? formData,
  21. this.pwdVisibility = false,
  22. this.confirmPwdVisibility = false,
  23. this.isAgreeTerms = false,
  24. this.firstNameErrorText,
  25. this.lastNameErrorText,
  26. this.emailErrorText,
  27. this.phoneErrorText,
  28. this.passwordErrorText,
  29. this.confirmPasswordErrorText,
  30. this.countryCode,
  31. }) : formData = formData ??
  32. {
  33. 'first_name': {
  34. 'value': '',
  35. 'controller': TextEditingController(),
  36. 'hintText': S.current.first_name,
  37. 'focusNode': FocusNode(),
  38. 'obsecure': false,
  39. },
  40. 'last_name': {
  41. 'value': '',
  42. 'controller': TextEditingController(),
  43. 'hintText': S.current.last_name,
  44. 'focusNode': FocusNode(),
  45. 'obsecure': false,
  46. },
  47. 'email': {
  48. 'value': '',
  49. 'controller': TextEditingController(),
  50. 'hintText': S.current.email,
  51. 'focusNode': FocusNode(),
  52. 'obsecure': false,
  53. },
  54. 'phone': {
  55. 'value': '',
  56. 'controller': TextEditingController(),
  57. 'hintText': S.current.mobile_phone,
  58. 'focusNode': FocusNode(),
  59. 'obsecure': false,
  60. },
  61. 'password': {
  62. 'value': '',
  63. 'controller': TextEditingController(),
  64. 'hintText': S.current.password,
  65. 'focusNode': FocusNode(),
  66. 'obsecure': true,
  67. },
  68. 'confirm_password': {
  69. 'value': '',
  70. 'controller': TextEditingController(),
  71. 'hintText': S.current.confirm_password,
  72. 'focusNode': FocusNode(),
  73. 'obsecure': true,
  74. },
  75. };
  76. SignUpState copyWith({
  77. String? firstNameErrorText,
  78. String? lastNameErrorText,
  79. String? emailErrorText,
  80. String? phoneErrorText,
  81. String? passwordErrorText,
  82. String? confirmPasswordErrorText,
  83. String? countryCode,
  84. bool? pwdVisibility,
  85. bool? confirmPwdVisibility,
  86. bool? isAgreeTerms,
  87. }) {
  88. return SignUpState(
  89. formData: this.formData,
  90. isAgreeTerms: isAgreeTerms ?? this.isAgreeTerms,
  91. pwdVisibility: pwdVisibility ?? this.pwdVisibility,
  92. confirmPwdVisibility: confirmPwdVisibility ?? this.confirmPwdVisibility,
  93. firstNameErrorText: firstNameErrorText,
  94. lastNameErrorText: lastNameErrorText,
  95. emailErrorText: emailErrorText,
  96. phoneErrorText: phoneErrorText,
  97. passwordErrorText: passwordErrorText,
  98. confirmPasswordErrorText: confirmPasswordErrorText,
  99. countryCode: countryCode ?? this.countryCode,
  100. );
  101. }
  102. }