auth_login_state.dart 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. //是否明文展示密码
  13. bool pwdVisibility;
  14. //登录按钮是否可用
  15. bool isLoginBtnEnable;
  16. bool isAgreeTerms;
  17. // =================================== Begin ↓ ===================================
  18. LoginState({
  19. Map<String, Map<String, dynamic>>? formData,
  20. this.accountErrorText,
  21. this.passwordErrorText,
  22. this.pwdVisibility = false,
  23. this.isLoginBtnEnable = false,
  24. this.isAgreeTerms = false,
  25. }) : formData = formData ??
  26. {
  27. 'account': {
  28. 'value': '',
  29. 'controller': TextEditingController(),
  30. 'hintText': S.current.phone_email,
  31. 'focusNode': FocusNode(),
  32. 'obsecure': false,
  33. },
  34. 'password': {
  35. 'value': '',
  36. 'controller': TextEditingController(),
  37. 'hintText': S.current.password,
  38. 'focusNode': FocusNode(),
  39. 'obsecure': true,
  40. },
  41. };
  42. LoginState copyWith({
  43. String? accountErrorText,
  44. String? passwordErrorText,
  45. String? account,
  46. String? password,
  47. bool? pwdVisibility,
  48. bool? isLoginBtnEnable,
  49. bool? isAgreeTerms,
  50. }) {
  51. return LoginState(
  52. formData: this.formData,
  53. accountErrorText: accountErrorText,
  54. passwordErrorText: passwordErrorText,
  55. pwdVisibility: pwdVisibility ?? this.pwdVisibility,
  56. isLoginBtnEnable: isLoginBtnEnable ?? this.isLoginBtnEnable,
  57. isAgreeTerms: isAgreeTerms ?? this.isLoginBtnEnable,
  58. );
  59. }
  60. }