@bootstrap-styled/ra-ui
Version:
UI components for react-admin
118 lines (98 loc) • 5.12 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
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 = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _compose = _interopRequireDefault(require("recompose/compose"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _breakpoints = require("@bootstrap-styled/css-mixins/lib/breakpoints");
var _CardBlock = _interopRequireDefault(require("@bootstrap-styled/v4/lib/Cards/CardBlock"));
var _classnames = _interopRequireDefault(require("classnames"));
var _withWidth = _interopRequireDefault(require("../extendMui/withWidth"));
var _button = require("../button");
var ToolbarBs = (0, _styledComponents.default)(_CardBlock.default).withConfig({
displayName: "Toolbar__ToolbarBs",
componentId: "sc-19eoja5-0"
})(["", ""], function (props) {
return "\n position: relative;\n display: flex;\n align-items: center;\n &.mobile-toolbar {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 16px;\n width: 100%;\n flex-shrink: 0;\n z-index: 2;\n }\n .toolbar-button-wrapper {\n flex: 1;\n display: flex;\n justify-content: space-between;\n }\n .toolbar-spacer {\n ".concat((0, _breakpoints.mediaBreakpointDown)('xs', props.theme['$grid-breakpoints'], "\n height: 5rem;\n "), "\n }\n ");
});
var valueOrDefault = function valueOrDefault(value, defaultValue) {
return typeof value === 'undefined' ? defaultValue : value;
};
var Toolbar = function Toolbar(_ref) {
var basePath = _ref.basePath,
children = _ref.children,
className = _ref.className,
handleSubmit = _ref.handleSubmit,
handleSubmitWithRedirect = _ref.handleSubmitWithRedirect,
invalid = _ref.invalid,
pristine = _ref.pristine,
record = _ref.record,
redirect = _ref.redirect,
resource = _ref.resource,
saving = _ref.saving,
submitOnEnter = _ref.submitOnEnter,
undoable = _ref.undoable,
width = _ref.width,
rest = (0, _objectWithoutProperties2.default)(_ref, ["basePath", "children", "className", "handleSubmit", "handleSubmitWithRedirect", "invalid", "pristine", "record", "redirect", "resource", "saving", "submitOnEnter", "undoable", "width"]);
return _react.default.createElement(_react.Fragment, null, _react.default.createElement(ToolbarBs, (0, _extends2.default)({
className: (0, _classnames.default)(className, {
mobile: width === 'xs'
})
}, rest), _react.Children.count(children) === 0 ? _react.default.createElement("div", {
className: "toolbar-button-wrapper"
}, _react.default.createElement(_button.SaveButton, {
handleSubmitWithRedirect: handleSubmitWithRedirect,
invalid: invalid,
redirect: redirect,
saving: saving,
submitOnEnter: submitOnEnter
}), record && typeof record.id !== 'undefined' && _react.default.createElement(_button.DeleteButton, {
basePath: basePath,
record: record,
resource: resource,
undoable: undoable
})) : _react.Children.map(children, function (button) {
return button && (0, _react.isValidElement)(button) ? _react.default.cloneElement(button, {
basePath: basePath,
handleSubmit: valueOrDefault(button.props.handleSubmit, handleSubmit),
handleSubmitWithRedirect: valueOrDefault(button.props.handleSubmitWithRedirect, handleSubmitWithRedirect),
invalid: invalid,
pristine: pristine,
saving: saving,
submitOnEnter: valueOrDefault(button.props.submitOnEnter, submitOnEnter),
undoable: valueOrDefault(button.props.undoable, undoable)
}) : null;
})), _react.default.createElement("div", {
className: "toolbar-spacer"
}));
};
Toolbar.propTypes = {
basePath: _propTypes.default.string,
children: _propTypes.default.node,
className: _propTypes.default.string,
handleSubmit: _propTypes.default.func,
handleSubmitWithRedirect: _propTypes.default.func,
invalid: _propTypes.default.bool,
pristine: _propTypes.default.bool,
record: _propTypes.default.object,
redirect: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool, _propTypes.default.func]),
resource: _propTypes.default.string,
saving: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
submitOnEnter: _propTypes.default.bool,
width: _propTypes.default.string,
undoable: _propTypes.default.bool
};
Toolbar.defaultProps = {
submitOnEnter: true
};
var enhance = (0, _compose.default)((0, _withWidth.default)());
var _default = enhance(Toolbar);
exports.default = _default;
module.exports = exports.default;