UNPKG

3.46 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = void 0;
9
10var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
11
12var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/extends"));
13
14var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectWithoutProperties"));
15
16var _react = _interopRequireDefault(require("react"));
17
18var _reactRouterDom = require("react-router-dom");
19
20var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
21
22var _styles = require("@material-ui/core/styles");
23
24var _propTypes = _interopRequireDefault(require("prop-types"));
25
26/* eslint-disable import/no-extraneous-dependencies */
27// flow-disable-next-line
28// flow-disable-next-line
29var styles = {
30 link: {
31 textDecoration: 'none',
32 color: '#ddd',
33 '&:hover': {
34 color: '#ccc',
35 textDecoration: 'none'
36 }
37 },
38 container: {
39 textAlign: 'center'
40 },
41 icon: {
42 width: 100,
43 height: 100
44 }
45};
46
47var Inner = function Inner(_ref) {
48 var classes = _ref.classes,
49 label = _ref.label,
50 Icon = _ref.icon;
51 return _react.default.createElement("div", {
52 className: classes.container
53 }, _react.default.createElement(Icon, {
54 className: classes.icon
55 }), _react.default.createElement("br", null), _react.default.createElement(_Button.default, {
56 color: "primary",
57 variant: "raised"
58 }, label));
59};
60
61Inner.propTypes = {
62 classes: _propTypes.default.object.isRequired,
63 label: _propTypes.default.string.isRequired,
64 icon: _propTypes.default.func.isRequired
65};
66
67var HeroButtonJSX = function HeroButtonJSX(_ref2) {
68 var classes = _ref2.classes,
69 dest = _ref2.dest,
70 newTab = _ref2.newTab,
71 hardLink = _ref2.hardLink,
72 icon = _ref2.icon,
73 label = _ref2.label,
74 rest = (0, _objectWithoutProperties2.default)(_ref2, ["classes", "dest", "newTab", "hardLink", "icon", "label"]);
75
76 if (newTab || hardLink) {
77 var aProps = {
78 href: dest,
79 className: classes.link
80 };
81
82 if (newTab) {
83 aProps.target = '_blank';
84 }
85
86 return _react.default.createElement("a", (0, _extends2.default)({}, rest, aProps), _react.default.createElement(Inner, {
87 icon: icon,
88 label: label,
89 classes: classes
90 }));
91 }
92
93 return _react.default.createElement(_reactRouterDom.Link, (0, _extends2.default)({}, rest, {
94 to: dest,
95 className: classes.link
96 }), _react.default.createElement(Inner, {
97 icon: icon,
98 label: label,
99 classes: classes
100 }));
101};
102
103HeroButtonJSX.propTypes = (0, _defineProperty2.default)({
104 dest: function dest(props, propName, componentName) {
105 if (!Object.prototype.hasOwnProperty.call(props, propName)) {
106 throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
107 }
108 },
109 hardLink: _propTypes.default.bool,
110 newTab: _propTypes.default.bool,
111 icon: _propTypes.default.func.isRequired,
112 label: _propTypes.default.string.isRequired,
113 classes: _propTypes.default.object.isRequired
114}, "label", _propTypes.default.string.isRequired);
115var HeroButton = (0, _styles.withStyles)(styles)(HeroButtonJSX);
116var _default = HeroButton;
117exports.default = _default;
\No newline at end of file