@etsoo/materialui
Version:
TypeScript Material-UI Implementation
26 lines (25 loc) • 883 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ButtonLink = ButtonLink;
const jsx_runtime_1 = require("react/jsx-runtime");
const Button_1 = __importDefault(require("@mui/material/Button"));
const react_router_dom_1 = require("react-router-dom");
/**
* ButtonLink
* @param props Props
* @returns Component
*/
function ButtonLink(props) {
// Destruct
const { href, state, ...rest } = props;
// Navigate
const navigate = (0, react_router_dom_1.useNavigate)();
const onClick = href.includes("://")
? () => window.open(href, "_blank")
: () => navigate(href, { state });
// Layout
return (0, jsx_runtime_1.jsx)(Button_1.default, { ...rest, onClick: onClick });
}