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

41 lines
988 B
TypeScript
Raw Normal View History

2022-07-30 16:24:28 +02:00
import Autocomplete from "@trevoreyre/autocomplete-js"
2022-07-31 00:46:21 +02:00
interface AutocompleteResult {
url: string
name: string
distance: number
}
const form = document.getElementById("autocomplete-form")! as HTMLFormElement
2022-04-12 00:07:34 +02:00
form.addEventListener("submit", function (e) {
e.preventDefault()
})
2022-04-11 23:52:19 +02:00
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())
2022-07-31 00:46:21 +02:00
.then((data: AutocompleteResult[]) => {
2022-04-11 23:52:19 +02:00
resolve(data)
})
})
},
2022-07-31 00:46:21 +02:00
getResultValue: (result: AutocompleteResult) => result.name,
onSubmit: (result: AutocompleteResult) => {
2022-04-11 23:52:19 +02:00
if (!result) {
2022-04-12 00:07:34 +02:00
form.submit()
2022-04-11 23:52:19 +02:00
return
}
location.href = result.url
}
})