UNPKG

@danilandreev/material-docs

Version:

material-docs - react framework for easy creating documentation site in material design style.

69 lines (57 loc) 2.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = generateHeaderIcon; var _react = _interopRequireDefault(require("react")); var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton")); var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip")); 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); } /** * generateHeaderIcon - function ,designed to generate material-ui IconButtons for Toolbar in DocsLayout. * @function * @param {function} changeRoute * @param {string} key * @param {any} icon * @param {function} onClick * @param {string | object} link * @param {string} tooltip * @param {string} className * @return {JSX.Element} */ function generateHeaderIcon(changeRoute, key, icon, onClick, link, tooltip, className) { if (! /*#__PURE__*/_react.default.isValidElement(icon)) throw new TypeError("MaterialDocs: Incorrect type of icon, expected \"node\", got \"".concat(_typeof(icon), "\"!")); if (className && typeof className !== "string") throw new TypeError("MaterialDocs: Incorrect type of className, expected \"string\", got \"".concat(_typeof(className), "\"!")); if (typeof changeRoute !== "function") throw new TypeError("MaterialDocs: Incorrect type of changeRoute, expected \"function\", got \"".concat(_typeof(changeRoute), "\"!")); if (typeof key !== "string") throw new TypeError("MaterialDocs: Incorrect type of key, expected \"string\", got \"".concat(_typeof(key), "\"!")); var styledIcon = /*#__PURE__*/_react.default.cloneElement(icon, { className: className }); function handleClick() { if (typeof onClick === "function") { onClick(); } else { switch (_typeof(link)) { case "string": window.location.href = link; break; case "object": changeRoute(link); break; default: console.error("MaterialDocs: Incorrect type of link, expected \"string | object\", got \"".concat(_typeof(link), "\"!")); } } } if (typeof tooltip === "string") return /*#__PURE__*/_react.default.createElement(_Tooltip.default, { title: tooltip, key: "header-action-item-".concat(link, "-").concat(key) }, /*#__PURE__*/_react.default.createElement(_IconButton.default, { onClick: handleClick }, styledIcon)); return /*#__PURE__*/_react.default.createElement(_IconButton.default, { onClick: handleClick, key: "header-action-item-".concat(link, "-").concat(key) }, styledIcon); }