Fix HeaderField for initialValue update

This commit is contained in:
Ashita Prasad
2023-10-22 09:51:19 +05:30
parent c4487ea207
commit c7fcdbe01c

View File

@ -23,16 +23,31 @@ class HeaderField extends StatefulWidget {
} }
class _HeaderFieldState extends State<HeaderField> { class _HeaderFieldState extends State<HeaderField> {
late TextEditingController controller; final TextEditingController controller = TextEditingController();
@override @override
void initState() { void initState() {
super.initState(); super.initState();
controller = TextEditingController(text: widget.initialValue); controller.text = widget.initialValue ?? "";
controller.selection = controller.selection =
TextSelection.collapsed(offset: controller.text.length); TextSelection.collapsed(offset: controller.text.length);
} }
@override
void dispose() {
controller.dispose();
super.dispose();
}
@override
void didUpdateWidget(HeaderField oldWidget) {
if (oldWidget.initialValue != widget.initialValue) {
controller.text = widget.initialValue ?? "";
controller.selection =
TextSelection.collapsed(offset: controller.text.length);
}
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var colorScheme = widget.colorScheme ?? Theme.of(context).colorScheme; var colorScheme = widget.colorScheme ?? Theme.of(context).colorScheme;