(tags.filter(({ key }) => m.values?.includes(key as S))),
+ filterSuggestedTags = (filterText: S, selectedTags?: Fluent.ITag[]) => {
if (!filterText) return []
const isAlreadySelected = (t: Fluent.ITag) => selectedTags && selectedTags.includes(t)
- const isStringMatch = (name: string) => name.toLowerCase().includes(filterText.toLowerCase())
+ const isStringMatch = (name: S) => name.toLowerCase().includes(filterText.toLowerCase())
return tags.filter(t => isStringMatch(t.name) && !isAlreadySelected(t))
},
onChange = (items?: Fluent.ITag[]) => {
@@ -54,6 +50,7 @@ export const XPicker = bond(({ model: m }: { model: Picker }) => {
qd.args[m.name] = items ? items.map(({ key }) => key) : null
if (m.trigger) qd.sync()
},
+ onEmptyResolveSuggestions = () => tags,
init = () => qd.args[m.name] = m.values || null,
render = () => (
@@ -67,6 +64,7 @@ export const XPicker = bond(({ model: m }: { model: Picker }) => {
itemLimit={m.max_choices}
selectedItems={selectedTagsB()}
disabled={m.disabled}
+ onEmptyResolveSuggestions={onEmptyResolveSuggestions}
/>
)