import { ArrayField, WixPatternsContainer, KeyedItem, SelectState, } from '@wix/bex-core'; import { DropdownSelectState } from './DropdownSelectState'; import { action, makeObservable } from 'mobx'; import { FilterToolbarState } from '../providers'; export interface DropdownSelectFilterStateParams { container: WixPatternsContainer; toolbar: FilterToolbarState; filter: ArrayField; } export class DropdownSelectFilterState { readonly select; readonly dropdownSelect; constructor(params: DropdownSelectFilterStateParams) { this.select = new SelectState>({ keyGetter: (value) => value.key, }); this.dropdownSelect = new DropdownSelectState({ select: this.select, container: params.container, toolbar: params.toolbar, filter: params.filter, }); makeObservable(this, { init: action.bound, }); } init() { const { dropdownSelect } = this; const dispose = dropdownSelect.init(); return () => { dispose(); }; } }