import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:initial_folder/size_config.dart'; import 'package:initial_folder/theme.dart'; class CustomTextField extends StatelessWidget { CustomTextField({ Key? key, this.length = 999, this.minLines = 1, this.maxLines = 1, this.height = 13, this.noTitle = false, this.prefix, this.suffix, this.color = secondaryColor, this.borderColor = Colors.white, this.keyboardType = TextInputType.text, this.title = '', this.obscuretext = false, this.auto = false, this.validate, this.enable = true, required this.pad, required this.controler, required this.hinttext, this.textInputAction, this.digitOnly, }) : super(key: key); final int length; final Color color; final bool? digitOnly; final int minLines; final int maxLines; final bool noTitle; final Color borderColor; final TextInputType keyboardType; final bool auto; final String title; final bool obscuretext; final TextEditingController controler; final String hinttext; final double pad; final double height; final FormFieldValidator? validate; final Widget? prefix; final Widget? suffix; final TextInputAction? textInputAction; final bool enable; // final String val; @override Widget build(BuildContext context) { final Brightness brightnessValue = MediaQuery.of(context).platformBrightness; bool isDarkMode = brightnessValue == Brightness.dark; return Container( margin: EdgeInsets.symmetric(horizontal: pad), width: double.infinity, child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ noTitle == false ? Text( title, style: thirdTextStyle.copyWith( fontWeight: semiBold, fontSize: getProportionateScreenWidth(12), // color: baruTexthitam, letterSpacing: 0.5), ) : SizedBox(height: 0), noTitle == false ? SizedBox( height: getProportionateScreenHeight(4), ) : SizedBox(height: 0), Theme( data: ThemeData.dark(), child: TextFormField( // initialValue: val, onChanged: (value) {}, enabled: enable, minLines: minLines, maxLines: maxLines, inputFormatters: [ (digitOnly != null) ? (digitOnly!) ? FilteringTextInputFormatter.digitsOnly : LengthLimitingTextInputFormatter(length) : LengthLimitingTextInputFormatter(length) ], keyboardType: keyboardType, // autofocus: auto, autovalidateMode: AutovalidateMode.onUserInteraction, validator: validate, obscureText: obscuretext, controller: controler, style: primaryTextStyle.copyWith( color: Theme.of(context).brightness == Brightness.dark ? baruTextutih : baruTexthitam, fontSize: getProportionateScreenWidth(14), letterSpacing: 0.5, ), cursorColor: secondaryColor, decoration: InputDecoration( filled: true, fillColor: Theme.of(context).brightness == Brightness.dark ? seventeenColor : secondaryColor.withOpacity(0.3), // errorStyle: primaryTextStyle, // errorBorder: OutlineInputBorder( // borderSide: BorderSide(color: sevenColor), // borderRadius: BorderRadius.circular(10)), errorStyle: thirdTextStyle.copyWith(color: Colors.red), suffixIcon: suffix, prefixIcon: prefix, contentPadding: EdgeInsets.only( left: getProportionateScreenWidth(15), top: getProportionateScreenHeight(height), bottom: getProportionateScreenHeight(height)), hintText: hinttext, hintStyle: thirdTextStyle.copyWith( fontSize: getProportionateScreenWidth(12), color: color, letterSpacing: 0.5), border: OutlineInputBorder( borderRadius: BorderRadius.circular( 10, ), borderSide: BorderSide.none), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular( 10, ), borderSide: BorderSide.none), ), textInputAction: textInputAction, ), ), SizedBox( height: getProportionateScreenHeight(16), ), ], ), ); } }