Reinitialized commit. Update and actors overview with some filters.
This commit is contained in:
18
src/navigate.js
Normal file
18
src/navigate.js
Normal file
@@ -0,0 +1,18 @@
|
||||
export default function navigate(path, query, options = {}) {
|
||||
const curatedQuery = Object.fromEntries(Object.entries(query || {}).map(([key, value]) => (value === undefined ? null : [key, value])).filter(Boolean));
|
||||
|
||||
const queryString = new URLSearchParams({
|
||||
...(options.preserveQuery ? Object.fromEntries(new URL(window.location).searchParams.entries()) : {}),
|
||||
...curatedQuery,
|
||||
}).toString();
|
||||
|
||||
const url = queryString
|
||||
? `${path}?${encodeURI(decodeURIComponent(queryString))}` // URLSearchParams encodes commas, we don't want that
|
||||
: path;
|
||||
|
||||
if (options.redirect) {
|
||||
window.location.href = url;
|
||||
} else {
|
||||
history.pushState({}, '', url); // eslint-disable-line no-restricted-globals
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user