// import 'package:flutter/material.dart'; // import 'package:flutter/services.dart'; // // ignore: must_be_immutable // class InteractionTextField extends StatelessWidget { // String labelText; // TextEditingController controller; // String? hintText; // IconButton? suffixIcon; // bool? enabled = true; // bool? obscure = false; // Function onChanged; // TextInputType? inputType; // int? maxchars = 0; // int? maxlines = 1; // int? minlines = 0; // InteractionTextField( // {super.key, // required this.controller, // this.hintText, // required this.labelText, // this.suffixIcon, // this.enabled, // this.maxchars, // this.maxlines, // this.inputType, // this.minlines, // required this.onChanged, // this.obscure}); // @override // Widget build(BuildContext context) { // return TextField( // controller: controller, // style: const TextStyle(fontSize: 16), // enabled: enabled, // obscureText: obscure ?? false, // onTap: () {}, // maxLines: maxlines ?? 1, // minLines: minlines, // keyboardType: inputType ?? TextInputType.name, // onChanged: (value) { // onChanged(value); // }, // onSubmitted: (value) { // onChanged(value); // }, // inputFormatters: [ // inputType == TextInputType.number // ? FilteringTextInputFormatter.digitsOnly // : maxchars == 0 // ? LengthLimitingTextInputFormatter(100) // : LengthLimitingTextInputFormatter(maxchars), // ], // decoration: InputDecoration( // isDense: true, // // contentPadding: const EdgeInsets.symmetric( // // horizontal: 10, // // vertical: 18, // // ), // contentPadding: EdgeInsets.all(13.0), // border: OutlineInputBorder( // borderRadius: BorderRadius.circular(10.0), // ), // suffixIcon: suffixIcon, // hintText: hintText, // ), // ); // } // } import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; // ignore: must_be_immutable class InteractionTextField extends StatelessWidget { String labelText; TextEditingController controller; String? hintText; IconButton? suffixIcon; bool? enabled = true; bool? obscure = false; Function onChanged; TextInputType? inputType; int? maxchars = 0; int? maxlines = 1; int? minlines = 0; InteractionTextField( {super.key, required this.controller, this.hintText, required this.labelText, this.suffixIcon, this.enabled, this.maxchars, this.maxlines, this.inputType, this.minlines, required this.onChanged, this.obscure}); @override Widget build(BuildContext context) { return TextField( controller: controller, style: const TextStyle(fontSize: 16), enabled: enabled, obscureText: obscure ?? false, onTap: () {}, maxLines: maxlines ?? 1, minLines: minlines, keyboardType: inputType ?? TextInputType.name, onChanged: (value) { onChanged(value); }, onSubmitted: (value) { onChanged(value); }, inputFormatters: [ inputType == TextInputType.number ? FilteringTextInputFormatter.digitsOnly : maxchars == 0 ? LengthLimitingTextInputFormatter(100) : LengthLimitingTextInputFormatter(maxchars), ], decoration: InputDecoration( isDense: true, // contentPadding: const EdgeInsets.symmetric( // horizontal: 10, // vertical: 18, // ), contentPadding: EdgeInsets.all(13.0), border: OutlineInputBorder( borderRadius: BorderRadius.circular(10.0), ), suffixIcon: suffixIcon, hintText: hintText, ), ); } }