Merge pull request 'Password field checks for match with old password from db and check so that new password feild matches with the confirm password field' (#143) from SEND013 into main
Some checks failed
ci/woodpecker/push/billing_fees Pipeline failed
ci/woodpecker/push/frontend Pipeline is pending
ci/woodpecker/push/chain_gateway Pipeline is pending
ci/woodpecker/push/db Pipeline is pending
ci/woodpecker/push/fx_ingestor Pipeline is pending
ci/woodpecker/push/fx_oracle Pipeline is pending
ci/woodpecker/push/ledger Pipeline is pending
ci/woodpecker/push/mntx_gateway Pipeline is pending
ci/woodpecker/push/nats Pipeline is pending
ci/woodpecker/push/notification Pipeline is pending
ci/woodpecker/push/payments_orchestrator Pipeline is pending
ci/woodpecker/push/bff Pipeline failed

Reviewed-on: #143
This commit was merged in pull request #143.
This commit is contained in:
2025-12-24 16:07:58 +00:00
7 changed files with 93 additions and 10 deletions

View File

@@ -10,6 +10,8 @@ class ConfirmPasswordField extends StatelessWidget {
required this.newPasswordController,
required this.missingPasswordError,
required this.passwordsDoNotMatchError,
required this.obscureText,
required this.onToggleVisibility,
});
final TextEditingController controller;
@@ -19,6 +21,8 @@ class ConfirmPasswordField extends StatelessWidget {
final TextEditingController newPasswordController;
final String missingPasswordError;
final String passwordsDoNotMatchError;
final bool obscureText;
final VoidCallback onToggleVisibility;
@override
Widget build(BuildContext context) {
@@ -26,11 +30,18 @@ class ConfirmPasswordField extends StatelessWidget {
width: fieldWidth,
child: TextFormField(
controller: controller,
obscureText: true,
obscureText: obscureText,
enabled: isEnabled,
autovalidateMode: AutovalidateMode.onUserInteraction,
decoration: InputDecoration(
labelText: confirmPasswordLabel,
border: const OutlineInputBorder(),
suffixIcon: IconButton(
onPressed: onToggleVisibility,
icon: Icon(
obscureText ? Icons.visibility_off : Icons.visibility,
),
),
),
validator: (value) {
if (value == null || value.isEmpty) return missingPasswordError;

View File

@@ -7,6 +7,8 @@ class PasswordField extends StatelessWidget {
required this.labelText,
required this.fieldWidth,
required this.isEnabled,
required this.obscureText,
required this.onToggleVisibility,
required this.validator,
});
@@ -14,6 +16,8 @@ class PasswordField extends StatelessWidget {
final String labelText;
final double fieldWidth;
final bool isEnabled;
final bool obscureText;
final VoidCallback onToggleVisibility;
final String? Function(String?) validator;
@override
@@ -22,14 +26,21 @@ class PasswordField extends StatelessWidget {
width: fieldWidth,
child: TextFormField(
controller: controller,
obscureText: true,
obscureText: obscureText,
enabled: isEnabled,
autovalidateMode: AutovalidateMode.onUserInteraction,
decoration: InputDecoration(
labelText: labelText,
border: const OutlineInputBorder(),
suffixIcon: IconButton(
onPressed: onToggleVisibility,
icon: Icon(
obscureText ? Icons.visibility_off : Icons.visibility,
),
),
),
validator: validator,
),
);
}
}
}

View File

@@ -18,6 +18,12 @@ class PasswordFields extends StatelessWidget {
required this.fieldWidth,
required this.gapSmall,
required this.isEnabled,
required this.showOldPassword,
required this.showNewPassword,
required this.showConfirmPassword,
required this.onToggleOldPassword,
required this.onToggleNewPassword,
required this.onToggleConfirmPassword,
});
final TextEditingController oldPasswordController;
@@ -31,6 +37,12 @@ class PasswordFields extends StatelessWidget {
final double fieldWidth;
final double gapSmall;
final bool isEnabled;
final bool showOldPassword;
final bool showNewPassword;
final bool showConfirmPassword;
final VoidCallback onToggleOldPassword;
final VoidCallback onToggleNewPassword;
final VoidCallback onToggleConfirmPassword;
@override
Widget build(BuildContext context) {
@@ -41,6 +53,8 @@ class PasswordFields extends StatelessWidget {
labelText: oldPasswordLabel,
fieldWidth: fieldWidth,
isEnabled: isEnabled,
obscureText: !showOldPassword,
onToggleVisibility: onToggleOldPassword,
validator: (value) =>
(value == null || value.isEmpty) ? missingPasswordError : null,
),
@@ -50,6 +64,8 @@ class PasswordFields extends StatelessWidget {
labelText: newPasswordLabel,
fieldWidth: fieldWidth,
isEnabled: isEnabled,
obscureText: !showNewPassword,
onToggleVisibility: onToggleNewPassword,
validator: (value) =>
(value == null || value.isEmpty) ? missingPasswordError : null,
),
@@ -62,8 +78,10 @@ class PasswordFields extends StatelessWidget {
newPasswordController: newPasswordController,
missingPasswordError: missingPasswordError,
passwordsDoNotMatchError: passwordsDoNotMatchError,
obscureText: !showConfirmPassword,
onToggleVisibility: onToggleConfirmPassword,
),
],
);
}
}
}