Files
simplex-chat/packages/simplex_app/lib/widgets/custom_text_field.dart
2021-10-14 10:00:07 +05:00

67 lines
1.9 KiB
Dart

import 'package:flutter/material.dart';
class CustomTextField extends StatefulWidget {
final TextEditingController textEditingController;
final TextInputType textInputType;
final String hintText;
final String? Function(String?)? validatorFtn;
const CustomTextField({
Key? key,
required this.textEditingController,
required this.textInputType,
required this.hintText,
this.validatorFtn,
}) : super(key: key);
@override
_CustomTextFieldState createState() => _CustomTextFieldState();
}
class _CustomTextFieldState extends State<CustomTextField> {
final FocusNode _node = FocusNode();
@override
void dispose() {
_node.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
return Container(
width: width * 0.89,
decoration: BoxDecoration(borderRadius: BorderRadius.circular(8.0)),
child: TextFormField(
textCapitalization: TextCapitalization.sentences,
controller: widget.textEditingController,
textInputAction: TextInputAction.done,
keyboardType: widget.textInputType,
decoration: InputDecoration(
contentPadding: const EdgeInsets.symmetric(horizontal: 15.0),
hintText: widget.hintText,
hintStyle: Theme.of(context).textTheme.caption,
fillColor: Colors.grey[200],
filled: true,
enabledBorder: const OutlineInputBorder(
borderSide: BorderSide(color: Colors.transparent)),
focusedBorder: const OutlineInputBorder(
borderSide: BorderSide(color: Colors.transparent),
),
errorBorder: const OutlineInputBorder(
borderSide: BorderSide(color: Colors.red),
),
focusedErrorBorder: const OutlineInputBorder(
borderSide: BorderSide(color: Colors.red),
),
),
validator: widget.validatorFtn,
),
);
}
}