remix-project mirror
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
remix-project/libs/remix-lib/src/query-params.ts

38 lines
966 B

'use strict'
export class QueryParams {
update (params) {
const currentParams = this.get()
const keys = Object.keys(params)
for (const x in keys) {
currentParams[keys[x]] = params[keys[x]]
}
let queryString = '#'
const updatedKeys = Object.keys(currentParams)
for (const y in updatedKeys) {
queryString += updatedKeys[y] + '=' + currentParams[updatedKeys[y]] + '&'
}
window.location.hash = queryString.slice(0, -1)
}
get () {
const qs = window.location.hash.substr(1)
if (window.location.search.length > 0) {
// use legacy query params instead of hash
window.location.hash = window.location.search.substr(1)
window.location.search = ''
}
const params = {}
const parts = qs.split('&')
for (const x in parts) {
const keyValue = parts[x].split('=')
if (keyValue[0] !== '') {
params[keyValue[0]] = keyValue[1]
}
}
return params
}
}