@shopify/polaris
Version:
Shopify’s admin product component library
91 lines (84 loc) • 4.15 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var css = require('../../utilities/css.js');
var withinContentContext = require('../../utilities/within-content-context.js');
var EmptyState$1 = require('./EmptyState.scss.js');
var Image = require('../Image/Image.js');
var utils = require('../Button/utils.js');
var TextContainer = require('../TextContainer/TextContainer.js');
var Stack = require('../Stack/Stack.js');
var DisplayText = require('../DisplayText/DisplayText.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
function EmptyState({
children,
heading,
image,
largeImage,
imageContained,
fullWidth = false,
action,
secondaryAction,
footerContent
}) {
const withinContentContainer = React.useContext(withinContentContext.WithinContentContext);
const className = css.classNames(EmptyState$1['default'].EmptyState, fullWidth && EmptyState$1['default'].fullWidth, imageContained && EmptyState$1['default'].imageContained, withinContentContainer && EmptyState$1['default'].withinContentContainer);
const imageMarkup = largeImage ? /*#__PURE__*/React__default['default'].createElement(Image.Image, {
alt: "",
role: "presentation",
className: EmptyState$1['default'].Image,
source: largeImage,
sourceSet: [{
source: image,
descriptor: '568w'
}, {
source: largeImage,
descriptor: '1136w'
}],
sizes: "(max-width: 568px) 60vw"
}) : /*#__PURE__*/React__default['default'].createElement(Image.Image, {
role: "presentation",
alt: "",
className: EmptyState$1['default'].Image,
source: image
});
const secondaryActionMarkup = secondaryAction ? utils.buttonFrom(secondaryAction, {}) : null;
const footerContentMarkup = footerContent ? /*#__PURE__*/React__default['default'].createElement("div", {
className: EmptyState$1['default'].FooterContent
}, /*#__PURE__*/React__default['default'].createElement(TextContainer.TextContainer, null, footerContent)) : null;
const headingSize = withinContentContainer ? 'small' : 'medium';
const primaryActionMarkup = action ? utils.buttonFrom(action, {
primary: true,
size: 'medium'
}) : null;
const headingMarkup = heading ? /*#__PURE__*/React__default['default'].createElement(DisplayText.DisplayText, {
size: headingSize
}, heading) : null;
const childrenMarkup = children ? /*#__PURE__*/React__default['default'].createElement("div", {
className: EmptyState$1['default'].Content
}, children) : null;
const textContentMarkup = headingMarkup || children ? /*#__PURE__*/React__default['default'].createElement(TextContainer.TextContainer, null, headingMarkup, childrenMarkup) : null;
const actionsMarkup = primaryActionMarkup || secondaryActionMarkup ? /*#__PURE__*/React__default['default'].createElement("div", {
className: EmptyState$1['default'].Actions
}, /*#__PURE__*/React__default['default'].createElement(Stack.Stack, {
alignment: "center",
distribution: "center",
spacing: "tight"
}, primaryActionMarkup, secondaryActionMarkup)) : null;
const detailsMarkup = textContentMarkup || actionsMarkup || footerContentMarkup ? /*#__PURE__*/React__default['default'].createElement("div", {
className: EmptyState$1['default'].DetailsContainer
}, /*#__PURE__*/React__default['default'].createElement("div", {
className: EmptyState$1['default'].Details
}, textContentMarkup, actionsMarkup, footerContentMarkup)) : /*#__PURE__*/React__default['default'].createElement("div", {
className: EmptyState$1['default'].DetailsContainer
});
return /*#__PURE__*/React__default['default'].createElement("div", {
className: className
}, /*#__PURE__*/React__default['default'].createElement("div", {
className: EmptyState$1['default'].Section
}, detailsMarkup, /*#__PURE__*/React__default['default'].createElement("div", {
className: EmptyState$1['default'].ImageContainer
}, imageMarkup)));
}
exports.EmptyState = EmptyState;