Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,10 @@ class _MyHomePageState extends State<MyHomePage> {
_multiSelectKey.currentState.validate();
},
),
errorTextStyle: TextStyle(
fontSize: 20,
color: Colors.lightGreen,
),
),
SizedBox(height: 40),
//################################################################################################
Expand Down
28 changes: 23 additions & 5 deletions lib/bottom_sheet/multi_select_bottom_sheet_field.dart
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,12 @@ class MultiSelectBottomSheetField<V> extends FormField<List<V>> {
/// Whether the user can dismiss the widget by tapping outside
final bool isDismissible;

/// Replaces the default padding for error message
final EdgeInsetsGeometry? errorPadding;

/// Style the error message
final TextStyle? errorTextStyle;

final AutovalidateMode autovalidateMode;
final FormFieldValidator<List<V>>? validator;
final FormFieldSetter<List<V>>? onSaved;
Expand Down Expand Up @@ -149,6 +155,8 @@ class MultiSelectBottomSheetField<V> extends FormField<List<V>> {
this.onSaved,
this.validator,
this.autovalidateMode = AutovalidateMode.disabled,
this.errorPadding,
this.errorTextStyle,
}) : super(
key: key,
onSaved: onSaved,
Expand Down Expand Up @@ -190,6 +198,8 @@ class MultiSelectBottomSheetField<V> extends FormField<List<V>> {
shape: shape,
checkColor: checkColor,
isDismissible: isDismissible,
errorPadding: errorPadding,
errorTextStyle: errorTextStyle,
);
return _MultiSelectBottomSheetFieldView<V?>._withState(
view as _MultiSelectBottomSheetFieldView<V?>, state);
Expand Down Expand Up @@ -230,6 +240,8 @@ class _MultiSelectBottomSheetFieldView<V> extends StatefulWidget {
final bool separateSelectedItems;
final Color? checkColor;
final bool isDismissible;
final EdgeInsetsGeometry? errorPadding;
final TextStyle? errorTextStyle;
FormFieldState<List<V>>? state;

_MultiSelectBottomSheetFieldView({
Expand Down Expand Up @@ -264,6 +276,8 @@ class _MultiSelectBottomSheetFieldView<V> extends StatefulWidget {
this.selectedItemsTextStyle,
required this.separateSelectedItems,
this.checkColor,
this.errorPadding,
this.errorTextStyle,
required this.isDismissible,
});

Expand Down Expand Up @@ -302,6 +316,8 @@ class _MultiSelectBottomSheetFieldView<V> extends StatefulWidget {
separateSelectedItems = field.separateSelectedItems,
checkColor = field.checkColor,
isDismissible = field.isDismissible,
errorPadding = field.errorPadding,
errorTextStyle = field.errorTextStyle,
state = state;

@override
Expand Down Expand Up @@ -490,13 +506,15 @@ class __MultiSelectBottomSheetFieldViewState<V>
? Row(
children: <Widget>[
Padding(
padding: const EdgeInsets.only(left: 4),
padding:
widget.errorPadding ?? const EdgeInsets.only(left: 4),
child: Text(
widget.state!.errorText!,
style: TextStyle(
color: Colors.red[800],
fontSize: 12.5,
),
style: widget.errorTextStyle ??
TextStyle(
color: Colors.red[800],
fontSize: 12.5,
),
),
),
],
Expand Down
28 changes: 23 additions & 5 deletions lib/chip_field/multi_select_chip_field.dart
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,12 @@ class MultiSelectChipField<V> extends FormField<List<V>> {
/// Set the width of the chip.
final double? chipWidth;

/// Replaces the default padding for error message
final EdgeInsetsGeometry? errorPadding;

/// Style the error message
final TextStyle? errorTextStyle;

final List<V> initialValue;
final AutovalidateMode autovalidateMode;
final FormFieldValidator<List<V>>? validator;
Expand Down Expand Up @@ -115,6 +121,8 @@ class MultiSelectChipField<V> extends FormField<List<V>> {
this.scrollBar,
this.showHeader = true,
this.chipWidth,
this.errorPadding,
this.errorTextStyle,
}) : super(
key: key,
onSaved: onSaved,
Expand Down Expand Up @@ -149,6 +157,8 @@ class MultiSelectChipField<V> extends FormField<List<V>> {
scrollBar: scrollBar,
showHeader: showHeader,
chipWidth: chipWidth,
errorPadding: errorPadding,
errorTextStyle: errorTextStyle,
);
return _MultiSelectChipFieldView<V?>.withState(
view as _MultiSelectChipFieldView<V?>, state);
Expand Down Expand Up @@ -187,6 +197,8 @@ class _MultiSelectChipFieldView<V> extends StatefulWidget
final HorizontalScrollBar? scrollBar;
final bool showHeader;
final double? chipWidth;
final EdgeInsetsGeometry? errorPadding;
final TextStyle? errorTextStyle;

_MultiSelectChipFieldView({
required this.items,
Expand Down Expand Up @@ -216,6 +228,8 @@ class _MultiSelectChipFieldView<V> extends StatefulWidget
this.scrollBar,
this.showHeader = true,
this.chipWidth,
this.errorPadding,
this.errorTextStyle,
});

/// This constructor allows a FormFieldState to be passed in. Called by MultiSelectChipField.
Expand Down Expand Up @@ -248,6 +262,8 @@ class _MultiSelectChipFieldView<V> extends StatefulWidget
scrollBar = field.scrollBar,
showHeader = field.showHeader,
chipWidth = field.chipWidth,
errorPadding = field.errorPadding,
errorTextStyle = field.errorTextStyle,
state = state;

@override
Expand Down Expand Up @@ -448,13 +464,15 @@ class __MultiSelectChipFieldViewState<V>
? Row(
children: <Widget>[
Padding(
padding: const EdgeInsets.fromLTRB(4, 4, 0, 0),
padding: widget.errorPadding ??
const EdgeInsets.fromLTRB(4, 4, 0, 0),
child: Text(
widget.state!.errorText!,
style: TextStyle(
color: Colors.red[800],
fontSize: 12.5,
),
style: widget.errorTextStyle ??
TextStyle(
color: Colors.red[800],
fontSize: 12.5,
),
),
),
],
Expand Down
28 changes: 23 additions & 5 deletions lib/dialog/multi_select_dialog_field.dart
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,12 @@ class MultiSelectDialogField<V> extends FormField<List<V>> {
/// Whether the user can dismiss the widget by tapping outside
final bool isDismissible;

/// Replaces the default padding for error message
final EdgeInsetsGeometry? errorPadding;

/// Style the error message
final TextStyle? errorTextStyle;

final AutovalidateMode autovalidateMode;
final FormFieldValidator<List<V>>? validator;
final FormFieldSetter<List<V>>? onSaved;
Expand Down Expand Up @@ -140,6 +146,8 @@ class MultiSelectDialogField<V> extends FormField<List<V>> {
this.validator,
this.initialValue = const [],
this.autovalidateMode = AutovalidateMode.disabled,
this.errorPadding,
this.errorTextStyle,
this.key,
}) : super(
key: key,
Expand Down Expand Up @@ -180,6 +188,8 @@ class MultiSelectDialogField<V> extends FormField<List<V>> {
separateSelectedItems: separateSelectedItems,
checkColor: checkColor,
isDismissible: isDismissible,
errorPadding: errorPadding,
errorTextStyle: errorTextStyle,
);
return _MultiSelectDialogFieldView<V>._withState(field, state);
});
Expand Down Expand Up @@ -217,6 +227,8 @@ class _MultiSelectDialogFieldView<V> extends StatefulWidget {
final bool separateSelectedItems;
final Color? checkColor;
final bool isDismissible;
final EdgeInsetsGeometry? errorPadding;
final TextStyle? errorTextStyle;
FormFieldState<List<V>>? state;

_MultiSelectDialogFieldView({
Expand Down Expand Up @@ -249,6 +261,8 @@ class _MultiSelectDialogFieldView<V> extends StatefulWidget {
this.selectedItemsTextStyle,
this.separateSelectedItems = false,
this.checkColor,
this.errorPadding,
this.errorTextStyle,
required this.isDismissible,
});

Expand Down Expand Up @@ -285,6 +299,8 @@ class _MultiSelectDialogFieldView<V> extends StatefulWidget {
separateSelectedItems = field.separateSelectedItems,
checkColor = field.checkColor,
isDismissible = field.isDismissible,
errorPadding = field.errorPadding,
errorTextStyle = field.errorTextStyle,
state = state;

@override
Expand Down Expand Up @@ -467,13 +483,15 @@ class __MultiSelectDialogFieldViewState<V>
? Row(
children: <Widget>[
Padding(
padding: const EdgeInsets.only(left: 4),
padding:
widget.errorPadding ?? const EdgeInsets.only(left: 4),
child: Text(
widget.state!.errorText!,
style: TextStyle(
color: Colors.red[800],
fontSize: 12.5,
),
style: widget.errorTextStyle ??
TextStyle(
color: Colors.red[800],
fontSize: 12.5,
),
),
),
],
Expand Down