|
|
|
@ -27,6 +27,7 @@ class AppTextFieldCustom extends StatefulWidget {
|
|
|
|
|
final String validationError;
|
|
|
|
|
final bool isPrscription;
|
|
|
|
|
final bool isSecure;
|
|
|
|
|
final bool focus;
|
|
|
|
|
|
|
|
|
|
AppTextFieldCustom({
|
|
|
|
|
this.height = 0,
|
|
|
|
@ -47,6 +48,7 @@ class AppTextFieldCustom extends StatefulWidget {
|
|
|
|
|
this.validationError,
|
|
|
|
|
this.isPrscription = false,
|
|
|
|
|
this.isSecure = false,
|
|
|
|
|
this.focus = false,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
@ -54,6 +56,32 @@ class AppTextFieldCustom extends StatefulWidget {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class _AppTextFieldCustomState extends State<AppTextFieldCustom> {
|
|
|
|
|
final FocusNode _focusNode = FocusNode();
|
|
|
|
|
bool focus = false;
|
|
|
|
|
bool view = false;
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
super.initState();
|
|
|
|
|
_focusNode.addListener(() {
|
|
|
|
|
setState(() {
|
|
|
|
|
focus = _focusNode.hasFocus;
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void didUpdateWidget(AppTextFieldCustom oldWidget) {
|
|
|
|
|
if (widget.focus) _focusNode.requestFocus();
|
|
|
|
|
super.didUpdateWidget(oldWidget);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void dispose() {
|
|
|
|
|
_focusNode.dispose();
|
|
|
|
|
super.dispose();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
ProjectViewModel projectViewModel = Provider.of(context);
|
|
|
|
@ -104,10 +132,11 @@ class _AppTextFieldCustomState extends State<AppTextFieldCustom> {
|
|
|
|
|
widget.height != 0 && widget.maxLines == 1
|
|
|
|
|
? widget.height - 22
|
|
|
|
|
: null,
|
|
|
|
|
child: TextField(
|
|
|
|
|
child: TextFormField(
|
|
|
|
|
textAlign: projectViewModel.isArabic
|
|
|
|
|
? TextAlign.right
|
|
|
|
|
: TextAlign.left,
|
|
|
|
|
focusNode: _focusNode,
|
|
|
|
|
decoration: TextFieldsUtils
|
|
|
|
|
.textFieldSelectorDecoration(
|
|
|
|
|
widget.hintText, null, true),
|
|
|
|
@ -129,7 +158,7 @@ class _AppTextFieldCustomState extends State<AppTextFieldCustom> {
|
|
|
|
|
? widget.inputFormatters
|
|
|
|
|
: [],
|
|
|
|
|
onChanged: (value) {
|
|
|
|
|
setState(() {});
|
|
|
|
|
// setState(() {});
|
|
|
|
|
if (widget.onChanged != null) {
|
|
|
|
|
widget.onChanged(value);
|
|
|
|
|
}
|
|
|
|
@ -162,9 +191,10 @@ class _AppTextFieldCustomState extends State<AppTextFieldCustom> {
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
if (widget.validationError != null)
|
|
|
|
|
if (widget.validationError != null && widget.validationError.isNotEmpty)
|
|
|
|
|
TextFieldsError(error: widget.validationError),
|
|
|
|
|
],
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|