Copy
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
class UpperCaseTextField extends StatefulWidget {
const UpperCaseTextField({
super.key,
this.width,
this.height,
this.hintText,
this.initialValue,
});
final double? width;
final double? height;
final String? hintText;
final String? initialValue;
@override
State<UpperCaseTextField > createState() => _UpperCaseTextFieldState();
}
class _UpperCaseTextFieldState extends State<UpperCaseTextField > {
late TextEditingController _controller;
@override
void initState() {
super.initState();
_controller = TextEditingController(text: widget.initialValue);
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Container(
width: widget.width ?? 230.0,
height: widget.height,
child: TextFormField(
controller: _controller,
autofocus: false,
textCapitalization: TextCapitalization.characters,
textInputAction: TextInputAction.next,
obscureText: false,
decoration: InputDecoration(
isDense: true,
hintText: widget.hintText,
hintStyle: TextStyle(
fontFamily: 'Poppins',
color: Color(0xFF0D121D).withOpacity(0.5),
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Color(0xFFBFBFBF),
width: 1.0,
),
borderRadius: BorderRadius.circular(8.0),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Color(0xFF020562),
width: 1.0,
),
borderRadius: BorderRadius.circular(8.0),
),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Color(0xFFE21C3D),
width: 1.0,
),
borderRadius: BorderRadius.circular(8.0),
),
focusedErrorBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Color(0xFFE21C3D),
width: 1.0,
),
borderRadius: BorderRadius.circular(8.0),
),
),
style: TextStyle(
fontFamily: 'Poppins',
color: Color(0xFF0D121D),
letterSpacing: 0.0,
),
inputFormatters: [
TextInputFormatter.withFunction((oldValue, newValue) {
return TextEditingValue(
text: newValue.text.toUpperCase(),
selection: newValue.selection,
);
}),
FilteringTextInputFormatter.allow(RegExp('[a-zA-Z0-9]')),
],
),
);
}
}