BaseDropdownSearch<T> constructor

BaseDropdownSearch<T>({
  1. Key? key,
  2. Object? groupId,
  3. T? selectedItem,
  4. Mode mode = Mode.form,
  5. AutovalidateMode? autoValidateMode = AutovalidateMode.disabled,
  6. ValueChanged<T?>? onSelected,
  7. DropdownSearchOnFind<T>? items,
  8. DropdownSearchBuilder<T>? dropdownBuilder,
  9. DropdownSuffixProps suffixProps = const DropdownSuffixProps(),
  10. ClickProps? clickProps,
  11. bool enabled = true,
  12. DropdownSearchFilterFn<T>? filterFn,
  13. DropdownSearchItemAsString<T>? itemAsString,
  14. DropdownSearchCompareFn<T>? compareFn,
  15. BeforeChange<T>? onBeforeChange,
  16. BeforePopupOpening<T>? onBeforePopupOpening,
  17. required UiMode uiMode,
  18. required BasePopupProps<T> popupProps,
  19. FormFieldSetter<T>? onSaved,
  20. FormFieldValidator<T>? validator,
  21. ChipProps? chipProps,
  22. DropDownDecoratorProps? decoratorProps,
})

Implementation

BaseDropdownSearch({
  super.key,
  this.groupId,
  T? selectedItem,
  this.mode = Mode.form,
  this.autoValidateMode = AutovalidateMode.disabled,
  this.onSelected,
  this.items,
  this.dropdownBuilder,
  this.suffixProps = const DropdownSuffixProps(),
  ClickProps? clickProps,
  this.enabled = true,
  this.filterFn,
  this.itemAsString,
  this.compareFn,
  this.onBeforeChange,
  this.onBeforePopupOpening,
  required this.uiMode,
  required this.popupProps,
  //form properties
  this.onSaved,
  this.validator,
  this.chipProps,
  DropDownDecoratorProps? decoratorProps,
})  : assert(
        T == String || T == int || T == double || compareFn != null,
        '`compareFn` is required',
      ),
      assert(
        mode != Mode.custom || dropdownBuilder != null,
        'Please implement your `dropdownBuilder`',
      ),
      assert(
        mode != Mode.custom ||
            (decoratorProps == null && onSaved == null && validator == null),
        'Custom mode has no form properties',
      ),
      assert(
        popupProps.mode != PopupMode.autocomplete || clickProps == null,
        'autocomplete mode has no clickProps',
      ),
      assert(
        popupProps.mode != PopupMode.autocomplete || mode != Mode.custom,
        "autocomplete mode and custom mode can't be used together",
      ),
      clickProps = clickProps ?? const ClickProps(),
      decoratorProps = decoratorProps ?? const DropDownDecoratorProps(),
      selectedItems = _itemToList(selectedItem),
      //to correct
      isMultiSelectionMode = false,
      dropdownBuilderMultiSelection = null,
      validatorMultiSelection = null,
      onBeforeChangeMultiSelection = null,
      onSavedMultiSelection = null,
      onSelectedMultiSelection = null,
      onBeforePopupOpeningMultiSelection = null,
      selectedItemsScrollProps = null,
      selectedItemsWrapProps = null;