textFormEntry method

Widget textFormEntry({
  1. String title = 'Text',
  2. String subTitle = 'Enter text',
  3. String hint = 'Text',
  4. IconData iconData = Icons.text_fields,
  5. dynamic onSaved(
    1. String?
    )?,
  6. String? validator(
    1. String?
    )?,
  7. String? defaultValue,
  8. TextEditingController? controller,
})

Generic text form field

Implementation

Widget textFormEntry({
  String title = 'Text',
  String subTitle = 'Enter text',
  String hint = 'Text',
  IconData iconData = Icons.text_fields,
  Function(String?)? onSaved,
  String? Function(String?)? validator,
  String? defaultValue,
  TextEditingController? controller,
}) {
  return formEntry(
    title: title,
    subTitle: subTitle,
    inputWidget: TextFormField(
      onChanged: (_) {
        widget.formKey.currentState?.save();
        widget.onModified?.call();
      },
      style: Theme.of(context).textTheme.bodyLarge,
      enabled: isEdit,
      controller: controller ?? TextEditingController(text: defaultValue),
      decoration: InputDecoration(
        hintText: hint,
        prefixIcon: Icon(iconData),
        border: OutlineInputBorder(borderRadius: BorderRadius.circular(8)),
        enabledBorder: OutlineInputBorder(
          borderRadius: BorderRadius.circular(8),
          borderSide: BorderSide(color: Colors.grey[300]!),
        ),
        focusedBorder: OutlineInputBorder(
          borderRadius: BorderRadius.circular(8),
          borderSide: const BorderSide(color: Colors.blue),
        ),
      ),
      validator:
          validator ?? (value) => value?.isEmpty == true ? 'Required' : null,
      onSaved: onSaved,
    ),
  );
}