Browse Source

Clear invalid options

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

16
app/frontend/controllers/address_search_controller.js

@ -5,16 +5,30 @@ 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 {
const response = await fetch(`${searchUrl}?query=${encodeURIComponent(query.trim())}`)
return await response.json() 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)) {
try {
const results = await fetchOptions(query, searchUrl) const results = await fetchOptions(query, searchUrl)
if (results.length === 0) {
populateOptions([], selectEl)
populateResults([])
} else {
populateOptions(results, selectEl) populateOptions(results, selectEl)
populateResults(Object.values(results).map((o) => o.text)) populateResults(Object.values(results).map((o) => o.text))
} }
} catch (error) {
populateOptions([], selectEl)
populateResults([])
}
}
} }
const populateOptions = (results, selectEl) => { const populateOptions = (results, selectEl) => {

Loading…
Cancel
Save