1
0
Fork 0
mirror of https://github.com/Findus23/RPGnotes.git synced 2024-09-19 15:43:45 +02:00
RPGnotes/static/js/autocomplete.ts
2022-07-31 00:46:21 +02:00

40 lines
988 B
TypeScript

import Autocomplete from "@trevoreyre/autocomplete-js"
interface AutocompleteResult {
url: string
name: string
distance: number
}
const form = document.getElementById("autocomplete-form")! as HTMLFormElement
form.addEventListener("submit", function (e) {
e.preventDefault()
})
new Autocomplete('#autocomplete', {
search: input => {
const url = `/search/autocomplete/?q=${encodeURI(input)}`
return new Promise(resolve => {
if (input.length === 0) {
return resolve([])
}
fetch(url)
.then(response => response.json())
.then((data: AutocompleteResult[]) => {
resolve(data)
})
})
},
getResultValue: (result: AutocompleteResult) => result.name,
onSubmit: (result: AutocompleteResult) => {
if (!result) {
form.submit()
return
}
location.href = result.url
}
})