import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/components/atomic_components/shared_components_atoms/tabview.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; class CustomInputUtil extends StatefulWidget { final TextEditingController? controller; final String? labelText; final String? hintText; final bool? obscureText; final IconData? suffixIcon; final bool autoFocus; FocusNode? focusNode; final TextInputAction textInputAction; final TextInputType keyboardType; final int maxLength; final FormFieldValidator? validator; final bool haveMaxLength; CustomInputUtil( {Key? key, this.controller, required this.labelText, required this.hintText, required this.suffixIcon, this.autoFocus = false, required this.focusNode, this.textInputAction = TextInputAction.next, this.keyboardType = TextInputType.text, this.maxLength = 80, this.validator, this.obscureText, required this.haveMaxLength}) : super(key: key); @override State createState() => _CustomInputUtilState(); } class _CustomInputUtilState extends State { @override void initState() { super.initState(); } @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 10.0), child: Column( children: [ TextFormField( controller: widget.controller, autovalidateMode: AutovalidateMode.onUserInteraction, autofocus: widget.autoFocus, focusNode: widget.focusNode, textInputAction: widget.textInputAction, obscureText: false, decoration: InputDecoration( isDense: true, labelText: widget.labelText, labelStyle: FlutterFlowTheme.of(context).labelMedium.override( fontFamily: FlutterFlowTheme.of(context).labelMediumFamily, color: FlutterFlowTheme.of(context).primaryText, letterSpacing: 0.0, useGoogleFonts: GoogleFonts.asMap().containsKey( FlutterFlowTheme.of(context).labelMediumFamily), ), hintText: widget.hintText, hintStyle: FlutterFlowTheme.of(context).labelMedium.override( fontFamily: FlutterFlowTheme.of(context).labelMediumFamily, color: FlutterFlowTheme.of(context).primaryText, letterSpacing: 0.0, useGoogleFonts: GoogleFonts.asMap().containsKey( FlutterFlowTheme.of(context).labelMediumFamily), ), enabledBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterFlowTheme.of(context).customColor6, width: 0.5, ), borderRadius: BorderRadius.circular(10.0), ), focusedBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterFlowTheme.of(context).primary, width: 0.5, ), borderRadius: BorderRadius.circular(10.0), ), errorBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterFlowTheme.of(context).error, width: 0.5, ), borderRadius: BorderRadius.circular(10.0), ), focusedErrorBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterFlowTheme.of(context).error, width: 0.5, ), borderRadius: BorderRadius.circular(10.0), ), suffixIcon: Icon( widget.suffixIcon, color: FlutterFlowTheme.of(context).accent1, ), ), style: FlutterFlowTheme.of(context).bodyMedium.override( fontFamily: FlutterFlowTheme.of(context).bodyMediumFamily, color: FlutterFlowTheme.of(context).primaryText, letterSpacing: 0.0, useGoogleFonts: GoogleFonts.asMap().containsKey( FlutterFlowTheme.of(context).bodyMediumFamily), ), maxLines: null, maxLength: widget.haveMaxLength ? widget.maxLength : null, keyboardType: widget.keyboardType, inputFormatters: [ LengthLimitingTextInputFormatter(widget.maxLength) ], validator: widget.validator, ), ], ), ); } }