infinity-forge
Version:
112 lines • 3.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRouterBuild = createRouterBuild;
function createRouterBuild(router) {
var queryParams = router.query;
function addRouteParam(paramName, paramValue) {
if (queryParams[paramName]) {
queryParams[paramName] = "".concat(queryParams[paramName], ",").concat(paramValue);
}
else {
queryParams[paramName] = paramValue;
}
router.push({
pathname: router.pathname,
query: queryParams,
}, undefined, {
shallow: false,
});
}
function updateRouteParam(paramName, paramValue) {
queryParams[paramName] = paramValue;
router.push({
pathname: router.pathname,
query: queryParams,
}, undefined, {
shallow: false,
scroll: false
});
}
function removeRouteParam(paramName, value) {
var paramText = queryParams[paramName];
if (typeof paramText === 'string') {
var paramItemsArray = paramText.split(',');
var paramRemoveIndex = paramItemsArray.findIndex(function (paramItem) { return paramItem === value.toString(); });
if (paramRemoveIndex !== -1) {
paramItemsArray.splice(paramRemoveIndex, 1);
}
if (paramItemsArray.length > 0) {
queryParams[paramName] = paramItemsArray.join(',');
}
else {
delete queryParams[paramName];
}
}
router.push({
pathname: router.pathname,
query: queryParams,
}, undefined, {
shallow: false,
});
}
function addRoutePath(mainPath, path) {
var mainPathValues = queryParams[mainPath];
if (typeof mainPathValues !== 'string' &&
mainPathValues !== undefined) {
mainPathValues.push(path);
}
queryParams[mainPath] = mainPathValues;
router.push({
pathname: router.pathname,
query: queryParams,
}, undefined, {
shallow: false,
});
}
function updateRoutePath(mainPath, newPath) {
queryParams[mainPath] = newPath.split('/');
router.push({
pathname: router.pathname,
query: queryParams,
}, undefined, {
shallow: false,
});
}
function removeRoutePath(mainPath, value) {
var mainPathValues = queryParams[mainPath];
if (typeof mainPathValues !== 'string' &&
mainPathValues !== undefined) {
var routeRemoveIndex = mainPathValues.findIndex(function (routeValue) { return routeValue === value.toString(); });
if (routeRemoveIndex !== -1) {
mainPathValues.splice(routeRemoveIndex, 1);
}
}
queryParams[mainPath] = mainPathValues;
router.push({
pathname: router.pathname,
query: queryParams,
}, undefined, {
shallow: false,
});
}
function switchRoute(mainPath, path, removeParam, newParams) {
delete queryParams[removeParam];
var params = Object.assign(newParams, queryParams);
router.push({
pathname: "/".concat(mainPath, "/").concat(path),
query: params,
}, undefined, {
shallow: false,
});
}
return {
addRouteParam: addRouteParam,
updateRouteParam: updateRouteParam,
removeRouteParam: removeRouteParam,
addRoutePath: addRoutePath,
updateRoutePath: updateRoutePath,
removeRoutePath: removeRoutePath,
switchRoute: switchRoute,
};
}
//# sourceMappingURL=router-build.js.map