25 lines
835 B
JavaScript
25 lines
835 B
JavaScript
|
import { store } from '../_store/store'
|
||
|
import { toast } from '../_utils/toast'
|
||
|
import { search } from '../_api/search'
|
||
|
|
||
|
export async function doSearch() {
|
||
|
let instanceName = store.get('currentInstance')
|
||
|
let accessToken = store.get('accessToken')
|
||
|
let queryInSearch = store.get('queryInSearch')
|
||
|
store.set({searchLoading: true})
|
||
|
try {
|
||
|
let results = await search(instanceName, accessToken, queryInSearch)
|
||
|
let currentQueryInSearch = store.get('queryInSearch') // avoid race conditions
|
||
|
if (currentQueryInSearch === queryInSearch) {
|
||
|
store.set({
|
||
|
searchResultsForQuery: queryInSearch,
|
||
|
searchResults: results
|
||
|
})
|
||
|
}
|
||
|
} catch (e) {
|
||
|
toast.say('Error during search: ' + (e.name || '') + ' ' + (e.message || ''))
|
||
|
console.error(e)
|
||
|
} finally {
|
||
|
store.set({searchLoading: false})
|
||
|
}
|
||
|
}
|