Browse Source

Clear invalid options

CLDC-3787-Autocomplete-address-search
Manny Dinssa 1 week ago
parent
commit
3a42095c6d
  1. 24
      app/frontend/controllers/address_search_controller.js

24
app/frontend/controllers/address_search_controller.js

@ -5,15 +5,29 @@ import 'accessible-autocomplete/dist/accessible-autocomplete.min.css'
const options = [] const options = []
const fetchOptions = async (query, searchUrl) => { const fetchOptions = async (query, searchUrl) => {
const response = await fetch(`${searchUrl}?query=${encodeURIComponent(query)}`) try {
return await response.json() const response = await fetch(`${searchUrl}?query=${encodeURIComponent(query.trim())}`)
return await response.json()
} catch (error) {
return error
}
} }
const fetchAndPopulateSearchResults = async (query, populateResults, searchUrl, populateOptions, selectEl) => { const fetchAndPopulateSearchResults = async (query, populateResults, searchUrl, populateOptions, selectEl) => {
if (/\S/.test(query)) { if (/\S/.test(query)) {
const results = await fetchOptions(query, searchUrl) try {
populateOptions(results, selectEl) const results = await fetchOptions(query, searchUrl)
populateResults(Object.values(results).map((o) => o.text)) if (results.length === 0) {
populateOptions([], selectEl)
populateResults([])
} else {
populateOptions(results, selectEl)
populateResults(Object.values(results).map((o) => o.text))
}
} catch (error) {
populateOptions([], selectEl)
populateResults([])
}
} }
} }

Loading…
Cancel
Save