TF-888 Apply new design for vacation on desktop
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
|
||||
import 'package:core/core.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:tmail_ui_user/features/base/widget/text_input_decoration_builder.dart';
|
||||
|
||||
typedef OnChangeInputAction = Function(String? value);
|
||||
|
||||
class TextInputFieldBuilder extends StatelessWidget {
|
||||
|
||||
final String? label;
|
||||
final String? error;
|
||||
final String? hint;
|
||||
final TextEditingController? editingController;
|
||||
final FocusNode? focusNode;
|
||||
final TextInputType? inputType;
|
||||
final bool isMandatory;
|
||||
final int? minLines;
|
||||
final int? maxLines;
|
||||
final Color? backgroundColor;
|
||||
final OnChangeInputAction? onChangeInputAction;
|
||||
|
||||
const TextInputFieldBuilder({
|
||||
Key? key,
|
||||
this.label,
|
||||
this.hint,
|
||||
this.error,
|
||||
this.isMandatory = false,
|
||||
this.editingController,
|
||||
this.focusNode,
|
||||
this.inputType,
|
||||
this.minLines,
|
||||
this.maxLines,
|
||||
this.backgroundColor,
|
||||
this.onChangeInputAction,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
||||
if (label != null)
|
||||
...[
|
||||
Text(isMandatory ? '${label!}*' : label!,
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.normal,
|
||||
color: AppColor.colorContentEmail)),
|
||||
const SizedBox(height: 8)
|
||||
],
|
||||
(TextFieldBuilder()
|
||||
..onChange((value) => onChangeInputAction?.call(value))
|
||||
..textInputAction(TextInputAction.next)
|
||||
..addController(editingController ?? TextEditingController())
|
||||
..addFocusNode(focusNode)
|
||||
..textStyle(const TextStyle(color: Colors.black, fontSize: 16))
|
||||
..keyboardType(inputType ?? TextInputType.text)
|
||||
..minLines(minLines)
|
||||
..maxLines(maxLines)
|
||||
..textDecoration((TextInputDecorationBuilder()
|
||||
..setContentPadding(const EdgeInsets.symmetric(
|
||||
vertical: BuildUtils.isWeb ? 16 : 12,
|
||||
horizontal: 12))
|
||||
..setHintText(hint)
|
||||
..setFillColor(backgroundColor)
|
||||
..setErrorText(error))
|
||||
.build()))
|
||||
.build()
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user