import 'package:eatvio_app/theme/theme_helper.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; class CustomTextFormField extends StatelessWidget { CustomTextFormField({ this.alignment, this.width, this.controller, this.focusNode, this.autofocus = false, this.textStyle, this.obscureText = false, this.textInputAction, this.textInputType, this.maxLines, this.hintText, this.hintStyle, this.prefix, this.prefixConstraints, this.suffix, this.suffixText, this.suffixConstraints, this.contentPadding, this.inputFormatters, this.borderDecoration, this.fillColor, this.filled = true, this.validator, this.keyboardType, this.onFieldSubmitted, this.onSaved, this.initialValue, this.onChanged, this.onEditingComplete, this.minLines = 1, this.maxLength, super.key, }); final Alignment? alignment; final double? width; final TextEditingController? controller; final FocusNode? focusNode; final bool autofocus; final TextStyle? textStyle; final bool? obscureText; final List? inputFormatters; final TextInputAction? textInputAction; final TextInputType? textInputType; final int? maxLines; final int minLines; final String? hintText; final TextStyle? hintStyle; final Widget? prefix; final BoxConstraints? prefixConstraints; final Widget? suffix; final String? suffixText; final BoxConstraints? suffixConstraints; final EdgeInsets? contentPadding; final InputBorder? borderDecoration; final Color? fillColor; final bool? filled; final TextInputType? keyboardType; final FormFieldValidator? validator; final String? initialValue; final Function(String)? onFieldSubmitted; final Function()? onEditingComplete; final void Function(String?)? onSaved; final void Function(String)? onChanged; final int? maxLength; @override Widget build(BuildContext context) { return Align( alignment: alignment ?? Alignment.center, child: TextFormField( minLines: minLines, maxLength: maxLength, onChanged: onChanged, controller: controller, focusNode: focusNode ?? null, autofocus: autofocus, style: TextStyle( fontSize: 16, color: Colors.black, fontWeight: FontWeight.w500, ), obscureText: obscureText!, textInputAction: textInputAction, maxLines: maxLines ?? 1, initialValue: initialValue, cursorColor: appTheme.blueA400, decoration: InputDecoration( suffixText: suffixText, hintText: hintText ?? "", hintStyle: TextStyle( fontSize: 16, color: Colors.grey.shade400, fontWeight: FontWeight.w500, ), prefixIcon: prefix, prefixIconConstraints: prefixConstraints, suffixIcon: suffix, suffixStyle: TextStyle( fontSize: 16, fontWeight: FontWeight.w500, color: Color(0xFF323F4B), ), suffixIconConstraints: suffixConstraints, isDense: false, contentPadding: EdgeInsets.symmetric(vertical: 16, horizontal: 12), fillColor: Color(0xFFF6F6F6), filled: true, border: borderDecoration ?? OutlineInputBorder( borderRadius: BorderRadius.circular(20), borderSide: BorderSide.none, ), enabledBorder: borderDecoration ?? OutlineInputBorder( borderRadius: BorderRadius.circular(20), borderSide: BorderSide.none, ), focusedBorder: borderDecoration ?? OutlineInputBorder( borderRadius: BorderRadius.circular(20), borderSide: BorderSide.none, ), ), keyboardType: keyboardType, validator: validator, onSaved: onSaved, inputFormatters: inputFormatters, ), ); } }