@doopage/react-ui-kit
Version:
UI-kit for DooPage project
78 lines (71 loc) • 3.59 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
import React, { memo } from 'react';
import MuiButton from '@material-ui/core/Button';
import CircularProgress from "@material-ui/core/CircularProgress";
import Tooltip from "@material-ui/core/Tooltip";
import Zoom from "@material-ui/core/Zoom";
import classNames from 'classnames';
import useStyles from './styles';
var Index = function (props) {
var _classNames;
var classes = useStyles();
var _props$loading = props.loading,
loading = _props$loading === void 0 ? false : _props$loading,
_props$disabled = props.disabled,
disabled = _props$disabled === void 0 ? false : _props$disabled,
children = props.children,
_props$color = props.color,
color = _props$color === void 0 ? 'primary' : _props$color,
helperText = props.helperText,
hide = props.hide,
_props$size = props.size,
size = _props$size === void 0 ? 'normal' : _props$size,
_props$round = props.round,
round = _props$round === void 0 ? false : _props$round,
_props$fullWidth = props.fullWidth,
fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
_props$upcaseText = props.upcaseText,
upcaseText = _props$upcaseText === void 0 ? false : _props$upcaseText,
_props$simple = props.simple,
simple = _props$simple === void 0 ? false : _props$simple,
_props$justIcon = props.justIcon,
justIcon = _props$justIcon === void 0 ? false : _props$justIcon,
_props$outline = props.outline,
outline = _props$outline === void 0 ? false : _props$outline,
_props$loadingText = props.loadingText,
loadingText = _props$loadingText === void 0 ? 'Đang xử lý...' : _props$loadingText,
className = props.className,
_props$placement = props.placement,
placement = _props$placement === void 0 ? 'bottom' : _props$placement,
smooth = props.smooth,
rest = _objectWithoutPropertiesLoose(props, ["loading", "disabled", "children", "color", "helperText", "hide", "size", "round", "fullWidth", "upcaseText", "simple", "justIcon", "outline", "loadingText", "className", "placement", "smooth"]);
var customClass = classNames(className, (_classNames = {}, _classNames[classes.button] = true, _classNames[classes[size]] = size, _classNames[classes[color]] = color, _classNames[classes.round] = round, _classNames[classes.fullWidth] = fullWidth, _classNames[classes.upcaseText] = upcaseText, _classNames[classes.disabled] = disabled, _classNames[classes.simple] = simple, _classNames[classes.outline] = outline, _classNames[classes.smooth] = smooth, _classNames[classes.justIcon] = justIcon, _classNames));
if (hide) return null;
var button = /*#__PURE__*/React.createElement(MuiButton, _extends({}, rest, {
disabled: loading || disabled,
className: customClass
}), function renderChildren() {
if (!loading) return children;
if (justIcon) {
return /*#__PURE__*/React.createElement("div", {
style: {
marginTop: -2,
color: '#fff'
},
className: "flex-center"
}, /*#__PURE__*/React.createElement(CircularProgress, {
color: "inherit",
size: 30
}));
}
return loadingText;
}());
if (helperText) return /*#__PURE__*/React.createElement(Tooltip, {
TransitionComponent: Zoom,
title: helperText,
placement: placement
}, button);
return button;
};
export default /*#__PURE__*/memo(Index);