BaseDropdownSearch<T> constructor
BaseDropdownSearch<T> ({
- Key? key,
- Object? groupId,
- T? selectedItem,
- Mode mode = Mode.form,
- AutovalidateMode? autoValidateMode = AutovalidateMode.disabled,
- ValueChanged<
T?> ? onSelected, - DropdownSearchOnFind<
T> ? items, - DropdownSearchBuilder<
T> ? dropdownBuilder, - DropdownSuffixProps suffixProps = const DropdownSuffixProps(),
- ClickProps? clickProps,
- bool enabled = true,
- DropdownSearchFilterFn<
T> ? filterFn, - DropdownSearchItemAsString<
T> ? itemAsString, - DropdownSearchCompareFn<
T> ? compareFn, - BeforeChange<
T> ? onBeforeChange, - BeforePopupOpening<
T> ? onBeforePopupOpening, - required UiMode uiMode,
- required BasePopupProps<
T> popupProps, - FormFieldSetter<
T> ? onSaved, - FormFieldValidator<
T> ? validator, - ChipProps? chipProps,
- 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;