sharyn
Version:
Combines all the other packages under one.
117 lines (98 loc) • 3.46 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _reactRouterDom = require("react-router-dom");
var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
var _styles = require("@material-ui/core/styles");
var _propTypes = _interopRequireDefault(require("prop-types"));
/* eslint-disable import/no-extraneous-dependencies */
// flow-disable-next-line
// flow-disable-next-line
var styles = {
link: {
textDecoration: 'none',
color: '#ddd',
'&:hover': {
color: '#ccc',
textDecoration: 'none'
}
},
container: {
textAlign: 'center'
},
icon: {
width: 100,
height: 100
}
};
var Inner = function Inner(_ref) {
var classes = _ref.classes,
label = _ref.label,
Icon = _ref.icon;
return _react.default.createElement("div", {
className: classes.container
}, _react.default.createElement(Icon, {
className: classes.icon
}), _react.default.createElement("br", null), _react.default.createElement(_Button.default, {
color: "primary",
variant: "raised"
}, label));
};
Inner.propTypes = {
classes: _propTypes.default.object.isRequired,
label: _propTypes.default.string.isRequired,
icon: _propTypes.default.func.isRequired
};
var HeroButtonJSX = function HeroButtonJSX(_ref2) {
var classes = _ref2.classes,
dest = _ref2.dest,
newTab = _ref2.newTab,
hardLink = _ref2.hardLink,
icon = _ref2.icon,
label = _ref2.label,
rest = (0, _objectWithoutProperties2.default)(_ref2, ["classes", "dest", "newTab", "hardLink", "icon", "label"]);
if (newTab || hardLink) {
var aProps = {
href: dest,
className: classes.link
};
if (newTab) {
aProps.target = '_blank';
}
return _react.default.createElement("a", (0, _extends2.default)({}, rest, aProps), _react.default.createElement(Inner, {
icon: icon,
label: label,
classes: classes
}));
}
return _react.default.createElement(_reactRouterDom.Link, (0, _extends2.default)({}, rest, {
to: dest,
className: classes.link
}), _react.default.createElement(Inner, {
icon: icon,
label: label,
classes: classes
}));
};
HeroButtonJSX.propTypes = (0, _defineProperty2.default)({
dest: function dest(props, propName, componentName) {
if (!Object.prototype.hasOwnProperty.call(props, propName)) {
throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
}
},
hardLink: _propTypes.default.bool,
newTab: _propTypes.default.bool,
icon: _propTypes.default.func.isRequired,
label: _propTypes.default.string.isRequired,
classes: _propTypes.default.object.isRequired
}, "label", _propTypes.default.string.isRequired);
var HeroButton = (0, _styles.withStyles)(styles)(HeroButtonJSX);
var _default = HeroButton;
exports.default = _default;