40 lines
1.3 KiB
Dart
40 lines
1.3 KiB
Dart
|
import 'package:flutter/material.dart';
|
||
|
|
||
|
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;
|
||
|
|
||
|
const FTextInput({super.key, required this.labelText, this.padding = 8, required this.controller, this.autofillHints, this.autofocus = false, this.onFieldSubmitted, this.obscureText = false});
|
||
|
|
||
|
@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,
|
||
|
enabledBorder: OutlineInputBorder(
|
||
|
borderSide: BorderSide(color: colorScheme.primary),
|
||
|
),
|
||
|
focusedBorder: OutlineInputBorder(
|
||
|
borderSide: BorderSide(color: colorScheme.onPrimary),
|
||
|
),
|
||
|
),
|
||
|
controller: controller,
|
||
|
autofillHints: autofillHints,
|
||
|
autofocus: autofocus,
|
||
|
onFieldSubmitted: onFieldSubmitted,
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|