@danilandreev/material-docs
Version:
material-docs - react framework for easy creating documentation site in material design style.
40 lines (33 loc) • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = goToPage;
var _createRouteFromName = _interopRequireDefault(require("./createRouteFromName"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
/**
* goToPage - function for redirecting between pages.
* On page error returns false value.
* Throws TypeError when changeRouteFunction is incorrect.
* @function
* @param {string | string[]} page Page path, can be a string separated with "/" or array of strings in right order.
* @param {function} changeRouteFunction Function for handling redirect. Pass changeRoute() from routing-manager here.
* @return boolean
* @throws TypeError
*/
function goToPage(page, changeRouteFunction) {
if (typeof changeRouteFunction !== "function") throw new TypeError("MaterialDocs: Incorrect type of changeRouteFunction param, expected \"function(object)\", got \"".concat(_typeof(changeRouteFunction), "\""));
if (typeof page !== "string" && !Array.isArray(page)) return false;
var path = page;
if (typeof path === "string") {
path = path.split("/");
}
path = path.map(function (item) {
return (0, _createRouteFromName.default)(item);
}).join("/");
changeRouteFunction({
page: path
});
return true;
}