pinafore/src/routes/_actions/autosuggestEmojiSearch.js
Nolan Lawson 78715bc098
fix: do remote search when autosuggesting accounts (#1182)
* fix: do remote search when autosuggesting accounts

fixes #1005

* fix emoji search
2019-05-05 19:16:02 -07:00

35 lines
936 B
JavaScript

import { store } from '../_store/store'
import { SEARCH_RESULTS_LIMIT } from '../_static/autosuggest'
import { scheduleIdleTask } from '../_utils/scheduleIdleTask'
function searchEmoji (searchText) {
searchText = searchText.toLowerCase().substring(1)
let { currentCustomEmoji } = store.get()
let results = currentCustomEmoji.filter(emoji => emoji.shortcode.toLowerCase().startsWith(searchText))
.sort((a, b) => a.shortcode.toLowerCase() < b.shortcode.toLowerCase() ? -1 : 1)
.slice(0, SEARCH_RESULTS_LIMIT)
return results
}
export function doEmojiSearch (searchText) {
let canceled = false
scheduleIdleTask(() => {
if (canceled) {
return
}
let results = searchEmoji(searchText)
store.setForCurrentAutosuggest({
autosuggestType: 'emoji',
autosuggestSelected: 0,
autosuggestSearchResults: results
})
})
return {
cancel: () => {
canceled = true
}
}
}