import 'package:eatvio_app/core/app_export.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 = TextInputAction.next, this.textInputType = TextInputType.text, this.maxLines, this.hintText, this.hintStyle, this.prefix, this.prefixConstraints, this.suffix, 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, 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 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; @override Widget build(BuildContext context) { return Align( alignment: alignment ?? Alignment.center, child: TextFormField( minLines: minLines, onChanged: onChanged, controller: controller, focusNode: focusNode ?? null, autofocus: autofocus, style: TextStyle( fontSize: 16, color: Colors.black, ), obscureText: obscureText!, textInputAction: textInputAction, maxLines: maxLines ?? 1, initialValue: initialValue, cursorColor: appTheme.blueA400, decoration: InputDecoration( hintText: hintText ?? "", hintStyle: TextStyle( fontSize: 16, color: Colors.grey.shade400, fontWeight: FontWeight.w400, ), prefixIcon: prefix, prefixIconConstraints: prefixConstraints, suffixIcon: suffix, suffixIconConstraints: suffixConstraints, isDense: false, contentPadding: EdgeInsets.all(8), fillColor: fillColor ?? theme.colorScheme.onPrimary, filled: filled, border: borderDecoration ?? OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: BorderSide( color: Colors.grey.shade400, width: 1, ), ), enabledBorder: borderDecoration ?? OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: BorderSide( color: Colors.grey.shade400, width: 1, ), ), focusedBorder: borderDecoration ?? OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: BorderSide( color: appTheme.blueA400, width: 1, ), ), ), keyboardType: keyboardType, validator: validator, onSaved: onSaved, inputFormatters: inputFormatters, ), ); } }