Fixes for Settings Page
This commit is contained in:
45
frontend/pshared/lib/widgets/password/confirm_field.dart
Normal file
45
frontend/pshared/lib/widgets/password/confirm_field.dart
Normal file
@@ -0,0 +1,45 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
|
||||
class ConfirmPasswordField extends StatelessWidget {
|
||||
const ConfirmPasswordField({
|
||||
required this.controller,
|
||||
required this.fieldWidth,
|
||||
required this.isEnabled,
|
||||
required this.confirmPasswordLabel,
|
||||
required this.newPasswordController,
|
||||
required this.missingPasswordError,
|
||||
required this.passwordsDoNotMatchError,
|
||||
});
|
||||
|
||||
final TextEditingController controller;
|
||||
final double fieldWidth;
|
||||
final bool isEnabled;
|
||||
final String confirmPasswordLabel;
|
||||
final TextEditingController newPasswordController;
|
||||
final String missingPasswordError;
|
||||
final String passwordsDoNotMatchError;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SizedBox(
|
||||
width: fieldWidth,
|
||||
child: TextFormField(
|
||||
controller: controller,
|
||||
obscureText: true,
|
||||
enabled: isEnabled,
|
||||
decoration: InputDecoration(
|
||||
labelText: confirmPasswordLabel,
|
||||
border: const OutlineInputBorder(),
|
||||
),
|
||||
validator: (value) {
|
||||
if (value == null || value.isEmpty) return missingPasswordError;
|
||||
if (value != newPasswordController.text) {
|
||||
return passwordsDoNotMatchError;
|
||||
}
|
||||
return null;
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user