fooder-app/lib/components/text.dart

60 lines
1.7 KiB
Dart
Raw Normal View History

2024-03-28 16:25:49 +01:00
import 'package:flutter/material.dart';
2024-04-04 19:03:41 +02:00
import 'package:flutter/services.dart';
2024-03-28 16:25:49 +01:00
class FTextInput extends StatelessWidget {
final String labelText;
final double padding;
final TextEditingController controller;
final List<String>? autofillHints;
final bool autofocus;
final bool obscureText;
final Function(String)? onFieldSubmitted;
2024-04-04 19:03:41 +02:00
final TextInputType? keyboardType;
final List<TextInputFormatter>? inputFormatters;
final Function(String)? onChanged;
2024-03-28 16:25:49 +01:00
2024-03-30 14:07:10 +01:00
const FTextInput(
{super.key,
required this.labelText,
this.padding = 8,
required this.controller,
this.autofillHints,
this.autofocus = false,
this.onFieldSubmitted,
2024-04-04 19:03:41 +02:00
this.obscureText = false,
this.keyboardType,
this.inputFormatters,
this.onChanged});
2024-03-28 16:25:49 +01:00
@override
Widget build(BuildContext context) {
var theme = Theme.of(context);
var colorScheme = theme.colorScheme;
return Padding(
padding: EdgeInsets.symmetric(vertical: padding, horizontal: padding),
child: TextFormField(
obscureText: obscureText,
decoration: InputDecoration(
labelText: labelText,
2024-04-04 19:03:41 +02:00
floatingLabelStyle:
theme.textTheme.bodyLarge!.copyWith(color: colorScheme.onSurface),
2024-03-28 16:25:49 +01:00
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: colorScheme.primary),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: colorScheme.onPrimary),
),
),
controller: controller,
autofillHints: autofillHints,
autofocus: autofocus,
onFieldSubmitted: onFieldSubmitted,
2024-04-04 19:03:41 +02:00
keyboardType: keyboardType,
inputFormatters: inputFormatters,
onChanged: onChanged,
2024-03-28 16:25:49 +01:00
),
);
}
}