ShadSelectFormField<T> constructor

ShadSelectFormField<T>({
  1. String? id,
  2. Key? key,
  3. FormFieldSetter<T>? onSaved,
  4. String? forceErrorText,
  5. Widget? label,
  6. Widget error(
    1. String error
    )?,
  7. Widget? description,
  8. ValueChanged<T?>? onChanged,
  9. @Deprecated('Use toValueTransformer instead') ToValueTransformer<T?>? valueTransformer,
  10. ToValueTransformer<T?>? toValueTransformer,
  11. FromValueTransformer<T?>? fromValueTransformer,
  12. VoidCallback? onReset,
  13. bool enabled = true,
  14. AutovalidateMode? autovalidateMode,
  15. String? restorationId,
  16. T? initialValue,
  17. FocusNode? focusNode,
  18. FormFieldValidator<T>? validator,
  19. required ShadSelectedOptionBuilder<T> selectedOptionBuilder,
  20. Iterable<Widget>? options,
  21. Widget? optionsBuilder(
    1. BuildContext,
    2. int
    )?,
  22. Widget? placeholder,
  23. bool closeOnTapOutside = true,
  24. double? minWidth,
  25. double? maxWidth,
  26. double? maxHeight,
  27. ShadDecoration? decoration,
  28. Widget? trailing,
  29. EdgeInsetsGeometry? padding,
  30. EdgeInsetsGeometry? optionsPadding,
  31. bool? showScrollToTopChevron,
  32. bool? showScrollToBottomChevron,
  33. ScrollController? scrollController,
  34. ShadAnchorBase? anchor,
  35. ImageFilter? filter,
  36. ShadPopoverController? popoverController,
  37. Widget? header,
  38. Widget? footer,
  39. bool allowDeselection = false,
  40. bool closeOnSelect = true,
  41. Object? groupId,
  42. int? itemCount,
  43. bool? shrinkWrap,
  44. ShadSelectController<T>? controller,
  45. bool? ensureSelectedVisible,
  46. VoidCallback? onPressed,
})

Implementation

ShadSelectFormField({
  super.id,
  super.key,
  super.onSaved,
  super.forceErrorText,
  super.label,
  super.error,
  super.description,
  super.onChanged,
  @Deprecated('Use toValueTransformer instead') super.valueTransformer,
  super.toValueTransformer,
  super.fromValueTransformer,
  super.onReset,
  super.enabled,
  super.autovalidateMode,
  super.restorationId,
  super.initialValue,
  super.focusNode,
  super.validator,

  /// {@macro ShadSelect.selectedOptionBuilder}
  required ShadSelectedOptionBuilder<T> selectedOptionBuilder,

  /// {@macro ShadSelect.options}
  Iterable<Widget>? options,

  /// {@macro ShadSelect.optionsBuilder}
  Widget? Function(BuildContext, int)? optionsBuilder,

  /// {@macro ShadSelect.placeholder}
  Widget? placeholder,

  /// {@macro ShadSelect.closeOnTapOutside}
  bool closeOnTapOutside = true,

  /// {@macro ShadSelect.minWidth}
  double? minWidth,

  /// {@macro ShadSelect.maxWidth}
  double? maxWidth,

  /// {@macro ShadSelect.maxHeight}
  double? maxHeight,

  /// {@macro ShadSelect.decoration}
  ShadDecoration? decoration,

  /// {@macro ShadSelect.trailing}
  Widget? trailing,

  /// {@macro ShadSelect.padding}
  EdgeInsetsGeometry? padding,

  /// {@macro ShadSelect.optionsPadding}
  EdgeInsetsGeometry? optionsPadding,

  /// {@macro ShadSelect.showScrollToTopChevron}
  bool? showScrollToTopChevron,

  /// {@macro ShadSelect.showScrollToBottomChevron}
  bool? showScrollToBottomChevron,

  /// {@macro ShadSelect.scrollController}
  ScrollController? scrollController,

  /// {@macro ShadSelect.anchor}
  ShadAnchorBase? anchor,

  /// {@macro ShadSelect.filter}
  ImageFilter? filter,

  /// {@macro ShadSelect.popoverController}
  ShadPopoverController? popoverController,

  /// {@macro ShadSelect.header}
  Widget? header,

  /// {@macro ShadSelect.footer}
  Widget? footer,

  /// {@macro ShadSelect.allowDeselection}
  bool allowDeselection = false,

  /// {@macro ShadSelect.closeOnSelect}
  bool closeOnSelect = true,

  /// {@macro ShadPopover.groupId}
  Object? groupId,

  /// {@macro ShadSelect.itemCount}
  int? itemCount,

  /// {@macro ShadSelect.shrinkWrap}
  bool? shrinkWrap,
  this.controller,

  /// {@macro ShadSelect.ensureSelectedVisible}
  bool? ensureSelectedVisible,

  /// {@macro ShadSelect.onPressed}
  VoidCallback? onPressed,
}) : super(
       decorationBuilder: (context) =>
           (ShadTheme.of(context).selectTheme.decoration ??
                   const ShadDecoration())
               .merge(decoration),
       builder: (state) {
         state as ShadFormBuilderSelectState<T>;

         return ShadSelect<T>(
           options: options,
           allowDeselection: allowDeselection,
           optionsBuilder: optionsBuilder,
           selectedOptionBuilder: selectedOptionBuilder,
           focusNode: state.focusNode,
           placeholder: placeholder,
           initialValue: state.initialValue,
           enabled: state.enabled,
           closeOnTapOutside: closeOnTapOutside,
           anchor: anchor,
           minWidth: minWidth,
           maxWidth: maxWidth,
           maxHeight: maxHeight,
           decoration: state.decoration,
           trailing: trailing,
           padding: padding,
           optionsPadding: optionsPadding,
           showScrollToTopChevron: showScrollToTopChevron,
           showScrollToBottomChevron: showScrollToBottomChevron,
           scrollController: scrollController,
           filter: filter,
           popoverController: popoverController,
           header: header,
           footer: footer,
           closeOnSelect: closeOnSelect,
           groupId: groupId,
           itemCount: itemCount,
           shrinkWrap: shrinkWrap,
           controller: state.controller,
           ensureSelectedVisible: ensureSelectedVisible,
           onPressed: onPressed,
         );
       },
     );