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; }, ), ); } }