SendTrain/lib/widgets/generic/elements/form_text_input.dart
2024-12-27 15:59:09 -05:00

53 lines
1.4 KiB
Dart

import 'package:flutter/material.dart';
class FormTextInput extends StatelessWidget {
const FormTextInput(
{super.key,
required this.controller,
required this.title,
this.icon,
this.maxLines,
this.minLines,
this.onTap});
final TextEditingController controller;
final String title;
final int? maxLines;
final int? minLines;
final Icon? icon;
final dynamic onTap;
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.only(top: 10, bottom: 10),
child: TextFormField(
minLines: minLines ?? 1,
maxLines: maxLines ?? 1,
controller: controller,
decoration: InputDecoration(
filled: true,
prefixIcon: icon ?? Icon(Icons.draw_rounded),
border: OutlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(12)),
labelText: title,
),
validator: (String? value) {
if (value == null || value.isEmpty) {
return 'Please enter some text';
}
if (value.length < 3) {
return 'Please enter a minimum of 3 characters';
}
return null;
},
onTap: () {
if (onTap != null) {
onTap();
}
}));
}
}