@shakthillc/components
Version:
React generic components for shakthi products
116 lines (105 loc) • 3.61 kB
JavaScript
import _Object$getPrototypeOf from "babel-runtime/core-js/object/get-prototype-of";
import _classCallCheck from "babel-runtime/helpers/classCallCheck";
import _createClass from "babel-runtime/helpers/createClass";
import _possibleConstructorReturn from "babel-runtime/helpers/possibleConstructorReturn";
import _inherits from "babel-runtime/helpers/inherits";
import React from "react";
import PropTypes from "prop-types";
import style from "./Button.module.css";
import user_profile from "../icons/user_profile.svg";
import Icon from "@material-ui/core/Icon";
var Button = function (_React$Component) {
_inherits(Button, _React$Component);
function Button() {
_classCallCheck(this, Button);
return _possibleConstructorReturn(this, (Button.__proto__ || _Object$getPrototypeOf(Button)).apply(this, arguments));
}
_createClass(Button, [{
key: "handleClick",
value: function handleClick() {
var onClick = this.props.onClick;
onClick && onClick();
//console.log(this.props.onClick)
}
}, {
key: "render",
value: function render() {
var _props = this.props,
text = _props.text,
size = _props.size,
onClick = _props.onClick,
type = _props.type,
dataId = _props.dataId,
iconName = _props.icon,
disabled = _props.disabled,
icon_position = _props.icon_position,
_props$id = _props.id,
id = _props$id === undefined ? "defaultButtonId" : _props$id;
var icon = size === "medium" ? "icon" + icon_position : "icon-" + size + "-" + icon_position;
var opacity = disabled === true ? "0.3" : "1";
//icon_position = icon_position.toLowerCase() === "right" ? "left": "right"
var icon_style = icon_position.toLowerCase() === "left" ? "icon_left" : "icon_right";
if (disabled) {
type = iconName !== undefined ? "disabled_icon_" + type : "disabled_" + type;
} else if (iconName !== undefined) {
type = type + "icon";
}
return React.createElement(
"div",
{
onClick: this.handleClick.bind(this),
className: style["input-icons"],
style: { pointerEvents: disabled ? "none" : "" }
},
React.createElement(
"button",
{
className: style[type.toLowerCase()] + " " + style[size.toLowerCase()],
type: "button",
disabled: disabled,
"data-id": id
},
icon_position === "right" ? React.createElement(
"span",
{ "data-id": 'text' + id },
text
) : "",
iconName && React.createElement(
"i",
{ style: { opacity: opacity }, className: style[icon_style] },
React.createElement(
Icon,
{ style: { fontSize: 16 } },
iconName
)
),
icon_position === "left" ? React.createElement(
"span",
{ "data-id": 'text' + id },
text
) : ""
)
);
}
}]);
return Button;
}(React.Component);
export default Button;
Button.defaultProps = {
size: "medium",
text: "Button",
dataId: "buttonComp",
type: "primary",
disabled: false,
icon_position: "left",
onClick: function onClick() {
console.log("Default click");
}
};
Button.propTypes = {
dataId: PropTypes.string,
onClick: PropTypes.func,
type: PropTypes.oneOf(["primary", "secondary", "disabled"]),
size: PropTypes.oneOf(["small", "medium", "large"]),
text: PropTypes.string
};