From c9034a723bddb40d92b501bf13dbea4eda7f157b Mon Sep 17 00:00:00 2001 From: Jacques Doeleman Date: Wed, 12 Oct 2022 12:17:09 +0200 Subject: [PATCH] Multi line input now uses the standard plain text input --- .../input/input_types/input_plain_text.dart | 92 +++++++------------ 1 file changed, 33 insertions(+), 59 deletions(-) diff --git a/lib/src/widgets/input/input_types/input_plain_text.dart b/lib/src/widgets/input/input_types/input_plain_text.dart index c37bbb2..f9d57bd 100644 --- a/lib/src/widgets/input/input_types/input_plain_text.dart +++ b/lib/src/widgets/input/input_types/input_plain_text.dart @@ -12,8 +12,19 @@ class FlutterFormInputPlainText extends FlutterFormInputWidget { Key? key, required FlutterFormInputController controller, Widget? label, + this.decoration, + this.textAlignVertical, + this.expands = false, + this.maxLines, + this.maxLength, }) : super(key: key, controller: controller, label: label); + final InputDecoration? decoration; + final TextAlignVertical? textAlignVertical; + final bool expands; + final int? maxLines; + final int? maxLength; + @override Widget build(BuildContext context, WidgetRef ref) { String Function(String, {List? params}) _ = @@ -21,54 +32,20 @@ class FlutterFormInputPlainText extends FlutterFormInputWidget { super.registerController(context); - return TextFormField( - initialValue: controller.value, - onSaved: (value) => controller.onSaved(value), - validator: (value) => controller.onValidate(value, _), - decoration: InputDecoration( - label: label ?? const Text("Plain text"), - ), - ); - } -} - -/// Input for a plain text with extra styling used in a [FlutterForm]. -/// -/// Standard controller is [FlutterFormInputPlainTextController]. -class FlutterFormInputPlainTextWhiteWithBorder extends FlutterFormInputWidget { - const FlutterFormInputPlainTextWhiteWithBorder({ - Key? key, - required FlutterFormInputController controller, - Widget? label, - this.hint, - }) : super(key: key, controller: controller, label: label); - - final String? hint; - - @override - Widget build(BuildContext context, WidgetRef ref) { - String Function(String, {List? params}) _ = - getTranslator(context, ref); - - super.registerController(context); + InputDecoration inputDecoration = decoration ?? + InputDecoration( + label: label ?? const Text("Plain text"), + ); return TextFormField( initialValue: controller.value, onSaved: (value) => controller.onSaved(value), validator: (value) => controller.onValidate(value, _), - decoration: InputDecoration( - hintText: hint, - floatingLabelBehavior: FloatingLabelBehavior.never, - isDense: true, - border: const OutlineInputBorder( - borderSide: BorderSide(color: Color(0xFF979797)), - ), - focusedBorder: const OutlineInputBorder( - borderSide: BorderSide(color: Color(0xFF979797)), - ), - fillColor: Colors.white, - filled: true, - ), + decoration: inputDecoration, + textAlignVertical: textAlignVertical, + expands: expands, + maxLines: maxLines, + maxLength: maxLength, ); } } @@ -76,40 +53,37 @@ class FlutterFormInputPlainTextWhiteWithBorder extends FlutterFormInputWidget { /// Input for a multi line plain text field [FlutterForm]. /// /// Standard controller is [FlutterFormInputPlainTextController]. -/// +/// /// Hint can be set to set a hint inside the field. -/// +/// /// MaxCharacters can be set to set a maximum amount of characters. -class FlutterFormInputMultiLine extends FlutterFormInputWidget { +class FlutterFormInputMultiLine extends StatelessWidget { const FlutterFormInputMultiLine({ Key? key, - required FlutterFormInputController controller, - Widget? label, + required this.controller, + this.label, this.hint, this.maxCharacters, - }) : super(key: key, controller: controller, label: label); + }) : super(key: key); + + final FlutterFormInputController controller; + final Widget? label; final String? hint; final int? maxCharacters; @override - Widget build(BuildContext context, WidgetRef ref) { - String Function(String, {List? params}) _ = - getTranslator(context, ref); - - super.registerController(context); - + Widget build(BuildContext context) { return Column( children: [ Expanded( - child: TextFormField( + child: FlutterFormInputPlainText( + label: label, + controller: controller, textAlignVertical: TextAlignVertical.top, expands: true, maxLines: null, maxLength: maxCharacters, - initialValue: controller.value, - onSaved: (value) => controller.onSaved(value), - validator: (value) => controller.onValidate(value, _), decoration: InputDecoration( hintText: hint, floatingLabelBehavior: FloatingLabelBehavior.never,