@bootstrap-styled/ra-ui
Version:
UI components for react-admin
107 lines (88 loc) • 4.1 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _compose = _interopRequireDefault(require("recompose/compose"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _Button = _interopRequireDefault(require("@bootstrap-styled/v4/lib/Button"));
var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
var _classnames = _interopRequireDefault(require("classnames"));
var _raCore = require("ra-core");
var _Responsive = _interopRequireDefault(require("../layout/Responsive"));
var ButtonRa = (0, _styledComponents.default)(_Button.default).withConfig({
displayName: "Button__ButtonRa",
componentId: "sc-1gus58-0"
})(["", ""], function (props) {
return "\n &.btn-secondary {\n text-decoration: none;\n border: none;\n background: transparent;\n color: ".concat(props.theme['$brand-primary'], ";\n &:hover {\n background-color: rgba(63, 81, 181, 0.08);\n border: none;\n color: ").concat(props.theme['$brand-primary'], ";\n }\n }\n ");
});
var Button = function Button(_ref) {
var _ref$alignIcon = _ref.alignIcon,
alignIcon = _ref$alignIcon === void 0 ? 'left' : _ref$alignIcon,
children = _ref.children,
className = _ref.className,
_ref$color = _ref.color,
color = _ref$color === void 0 ? 'secondary' : _ref$color,
disabled = _ref.disabled,
label = _ref.label,
_ref$size = _ref.size,
size = _ref$size === void 0 ? 'sm' : _ref$size,
translate = _ref.translate,
rest = (0, _objectWithoutProperties2.default)(_ref, ["alignIcon", "children", "className", "color", "disabled", "label", "size", "translate"]);
return _react.default.createElement(_Responsive.default, {
small: label && !disabled ? _react.default.createElement(_Tooltip.default, {
title: translate(label, {
_: label
})
}, _react.default.createElement(_IconButton.default, (0, _extends2.default)({
"aria-label": translate(label, {
_: label
}),
className: className,
color: color
}, rest), children)) : _react.default.createElement(_IconButton.default, (0, _extends2.default)({
className: className,
color: color,
disabled: disabled
}, rest), children),
medium: _react.default.createElement(ButtonRa, (0, _extends2.default)({
className: (0, _classnames.default)('d-inline-flex align-items-center', className),
color: color,
size: size,
"aria-label": label ? translate(label, {
_: label
}) : undefined,
disabled: disabled
}, rest), alignIcon === 'left' && children && _react.default.cloneElement(children), label && _react.default.createElement("span", {
className: (0, _classnames.default)({
'pl-2': alignIcon === 'left',
'pr-2': alignIcon !== 'left'
})
}, translate(label, {
_: label
})), alignIcon === 'right' && children && _react.default.cloneElement(children))
});
};
Button.propTypes = {
alignIcon: _propTypes.default.string,
children: _propTypes.default.element,
className: _propTypes.default.string,
color: _propTypes.default.string,
disabled: _propTypes.default.bool,
label: _propTypes.default.string,
size: _propTypes.default.oneOf(['sm', '', 'lg']),
translate: _propTypes.default.func.isRequired
};
Button.defaultProps = {
size: 'sm'
};
var enhance = (0, _compose.default)(_raCore.translate);
var _default = enhance(Button);
exports.default = _default;
module.exports = exports.default;