UNPKG

@bootstrap-styled/ra-ui

Version:
118 lines (98 loc) 5.12 kB
"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;