import React from 'react'; import AutoComplete, { AutoCompleteOptions } from '.'; import UserSelectAutoCompleteFC from './components/UserSelectAutoComplete'; const Component = React.forwardRef((props, ref) => { const [value, setValue] = React.useState(props.value ?? ''); return ( i.trim()).filter((i) => i)} onChange={(v) => { setValue(v); props.onChange(v); }} multi={props.multi} /> ); }); export default class UserSelectAutoComplete extends AutoComplete { static DOMAttachKey = 'ucwUserSelectAutoCompleteInstance'; constructor($dom, options: AutoCompleteOptions) { super($dom, { classes: 'user-select', ...options, }); } value(): Multi extends true ? number[] : string { if (this.options.multi) return this.ref?.getSelectedItemKeys().map((i) => +i) ?? this.$dom.val(); return this.ref?.getSelectedItems()[0] ?? null; } attach() { const value = this.$dom.val(); this.component.render( { this.ref = ref; }} value={value} multi={this.options.multi} onChange={this.onChange} />, ); } } window.Hydro.components.UserSelectAutoComplete = UserSelectAutoComplete;