import 'package:flutter/material.dart'; import 'spaces.dart'; class CustomTextField extends StatelessWidget { final TextEditingController controller; final String label; final Function(String value)? onChanged; final bool obscureText; final TextInputType? keyboardType; final TextInputAction? textInputAction; final TextCapitalization? textCapitalization; final bool showLabel; final Widget? prefixIcon; final Widget? suffixIcon; final bool readOnly; final int? maxLines; final String? Function(String?)? validator; const CustomTextField({ super.key, required this.controller, required this.label, this.onChanged, this.obscureText = false, this.keyboardType, this.textInputAction, this.textCapitalization, this.showLabel = true, this.prefixIcon, this.suffixIcon, this.readOnly = false, this.maxLines, this.validator, }); @override Widget build(BuildContext context) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ if (showLabel) ...[ Text( label, style: const TextStyle( fontSize: 14, fontWeight: FontWeight.w700, ), ), const SpaceHeight(12.0), ], TextFormField( controller: controller, onChanged: onChanged, obscureText: obscureText, keyboardType: keyboardType, textInputAction: textInputAction, textCapitalization: textCapitalization ?? TextCapitalization.none, readOnly: readOnly, maxLines: maxLines, validator: validator, decoration: InputDecoration( prefixIcon: prefixIcon, suffixIcon: suffixIcon, hintText: label, ), ), ], ); } }