// Navigation helpers import pathToRegexp from "path-to-regexp"; import { createBrowserHistory, Location, LocationDescriptor } from "history"; import { createObservableHistory } from "mobx-observable-history"; export const browserHistory = createBrowserHistory(); export const navigation = createObservableHistory(browserHistory); export function navigate(location: LocationDescriptor): void { navigation.location = location as Location; } export interface URLParams
{
params?: P;
query?: QueryParams & Q;
}
// common params for all pages
export interface QueryParams {
namespaces?: string[]; // selected context namespaces
details?: string; // serialized resource details
selected?: string; // mark resource as selected
search?: string; // search-input value
sortBy?: string; // sorting params for table-list
orderBy?: string;
}
export function getQueryString(params?: Partial (path: string | string[]): ({ params, query }?: URLParams ) => string {
const pathBuilder = pathToRegexp.compile(path.toString());
return function ({ params, query }: URLParams = {}): string {
return pathBuilder(params) + (query ? getQueryString(query, false) : "");
};
}
export function setQueryParams