Initial commit
This commit is contained in:
42
index.js
Normal file
42
index.js
Normal file
@@ -0,0 +1,42 @@
|
||||
// Register service worker
|
||||
if ('serviceWorker' in navigator) {
|
||||
navigator.serviceWorker.register('./sw.js', {
|
||||
type: 'module'
|
||||
})
|
||||
.then(() => console.log('sw ok'))
|
||||
.catch(() => console.log('sw not ok'))
|
||||
}
|
||||
|
||||
var data = {}
|
||||
|
||||
const infoEl = document.getElementById('info')
|
||||
const formEl = document.getElementById('search')
|
||||
|
||||
// Register event listeners
|
||||
formEl.addEventListener('submit', (event) => {
|
||||
if ('instances' in data && data.instances.length > 0) {
|
||||
event.preventDefault()
|
||||
// Random instance
|
||||
const n = Math.floor(Math.random() * data.instances.length)
|
||||
const instanceURL = data.instances[n]
|
||||
// Assign URL
|
||||
const params = new URLSearchParams({
|
||||
q: formEl.query.value
|
||||
})
|
||||
const url = `${instanceURL}?${params.toString()}`
|
||||
location.assign(url)
|
||||
}
|
||||
})
|
||||
|
||||
// Fetch data
|
||||
await fetch('./data.json')
|
||||
.then(req => req.json())
|
||||
.then(newData => { data = newData })
|
||||
.then(() => {
|
||||
infoEl.textContent = `${data.instances.length} instances`
|
||||
})
|
||||
.catch(err => {
|
||||
console.error(err)
|
||||
infoEl.textContent = err.toString()
|
||||
infoEl.classList.add('error')
|
||||
})
|
Reference in New Issue
Block a user