UNPKG

@mapbox/mr-ui

Version:

UI components for Mapbox projects

82 lines (81 loc) 2.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ModalActions; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _button = _interopRequireDefault(require("../button")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function ModalActions(_ref) { let { primaryAction, secondaryAction, tertiaryAction } = _ref; const renderSecondary = () => { if (!primaryAction || !secondaryAction) { return null; } return /*#__PURE__*/_react.default.createElement("div", { className: "flex-child-no-shrink mr12" }, /*#__PURE__*/_react.default.createElement(_button.default, { variant: "secondary", size: "medium", onClick: secondaryAction.callback, disabled: secondaryAction.disabled, "data-test": "secondary-modal-action", passthroughProps: { 'aria-label': secondaryAction.text } }, secondaryAction.text)); }; const renderTertiary = () => { if (!primaryAction || !secondaryAction || !tertiaryAction) { return null; } return /*#__PURE__*/_react.default.createElement("div", { className: "flex-child-no-shrink mr12" }, /*#__PURE__*/_react.default.createElement(_button.default, { "aria-label": tertiaryAction.text, variant: "tertiary", onClick: tertiaryAction.callback, disabled: tertiaryAction.disabled, "data-test": "tertiary-modal-action" }, tertiaryAction.text)); }; const primaryButtonVariant = primaryAction.destructive ? 'destructive' : 'primary'; return /*#__PURE__*/_react.default.createElement("div", { className: "flex flex--center-main flex--center-cross flex--row-reverse flex--wrap" }, /*#__PURE__*/_react.default.createElement("div", { className: "flex-child-no-shrink" }, /*#__PURE__*/_react.default.createElement(_button.default, { variant: primaryButtonVariant, size: "medium", onClick: primaryAction.callback, disabled: primaryAction.disabled, "data-test": "primary-modal-action", passthroughProps: { tabIndex: 0, 'aria-label': primaryAction.text } }, primaryAction.text)), renderSecondary(), renderTertiary()); } ModalActions.propTypes = { primaryAction: _propTypes.default.shape({ text: _propTypes.default.string.isRequired, callback: _propTypes.default.func.isRequired, destructive: _propTypes.default.bool, disabled: _propTypes.default.bool }).isRequired, secondaryAction: _propTypes.default.shape({ text: _propTypes.default.string.isRequired, callback: _propTypes.default.func.isRequired, disabled: _propTypes.default.bool }), tertiaryAction: _propTypes.default.shape({ text: _propTypes.default.string.isRequired, callback: _propTypes.default.func.isRequired, disabled: _propTypes.default.bool }) };