UNPKG

@atlaskit/empty-state

Version:

An empty state appears when there is no data to display and describes what the user can do next.

93 lines (92 loc) 4.21 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _buttonGroup = _interopRequireDefault(require("@atlaskit/button/button-group")); var _heading = _interopRequireDefault(require("@atlaskit/heading/heading")); var _compiled = require("@atlaskit/primitives/compiled"); var _spinner = _interopRequireDefault(require("@atlaskit/spinner/spinner")); var _actionsContainer = _interopRequireDefault(require("./styled/actions-container")); var _container = _interopRequireDefault(require("./styled/container")); var _image = _interopRequireDefault(require("./styled/image")); var _spinnerContainer = _interopRequireDefault(require("./styled/spinner-container")); /** * __Empty state__ * * A component used for presenting various empty states. * e.g. (no items, empty search, broken link, welcome screen etc.) * * @example * ```tsx * import EmptyState from '@atlaskit/empty-state'; * * // An example of a 404 state * export default () => { * <EmptyState * header="Page not found" * imageUrl="https://cdn.io/images/404" * description="Looks like you've stumbled off track. Sorry about that! This page either doesn't exist or has been removed." * primaryAction={<Button appearance="primary">Home Page</Button>} * secondaryAction={<Button>Report a problem</Button>} * />; * }; * ``` */ var EmptyState = function EmptyState(_ref) { var buttonGroupLabel = _ref.buttonGroupLabel, description = _ref.description, header = _ref.header, _ref$headingLevel = _ref.headingLevel, headingLevel = _ref$headingLevel === void 0 ? 4 : _ref$headingLevel, _ref$headingSize = _ref.headingSize, headingSize = _ref$headingSize === void 0 ? 'medium' : _ref$headingSize, imageHeight = _ref.imageHeight, imageUrl = _ref.imageUrl, imageWidth = _ref.imageWidth, isLoading = _ref.isLoading, _ref$maxImageHeight = _ref.maxImageHeight, maxImageHeight = _ref$maxImageHeight === void 0 ? 160 : _ref$maxImageHeight, _ref$maxImageWidth = _ref.maxImageWidth, maxImageWidth = _ref$maxImageWidth === void 0 ? 160 : _ref$maxImageWidth, primaryAction = _ref.primaryAction, renderImage = _ref.renderImage, secondaryAction = _ref.secondaryAction, width = _ref.width, tertiaryAction = _ref.tertiaryAction, testId = _ref.testId; var actionsContainer = primaryAction || secondaryAction || isLoading ? /*#__PURE__*/_react.default.createElement(_actionsContainer.default, null, primaryAction && secondaryAction ? /*#__PURE__*/_react.default.createElement(_buttonGroup.default, { label: buttonGroupLabel || 'Button group', testId: testId && "".concat(testId, "-button-group") }, secondaryAction, primaryAction) : primaryAction || secondaryAction, /*#__PURE__*/_react.default.createElement(_spinnerContainer.default, null, isLoading && /*#__PURE__*/_react.default.createElement(_spinner.default, { testId: "empty-state-spinner" }))) : null; var tag = "h".concat(headingLevel > 0 && headingLevel < 7 ? headingLevel : headingLevel > 6 ? 6 : 4); return /*#__PURE__*/_react.default.createElement(_container.default, { testId: testId, width: width || 'wide' }, imageUrl ? /*#__PURE__*/_react.default.createElement(_image.default, { src: imageUrl, maxWidth: maxImageWidth, maxHeight: maxImageHeight, width: imageWidth, height: imageHeight }) : renderImage && renderImage({ maxImageWidth: maxImageWidth, maxImageHeight: maxImageHeight, imageWidth: imageWidth, imageHeight: imageHeight }), /*#__PURE__*/_react.default.createElement(_compiled.Box, { paddingBlockEnd: "space.200" }, /*#__PURE__*/_react.default.createElement(_heading.default, { size: headingSize, as: tag }, header)), description && /*#__PURE__*/_react.default.createElement(_compiled.Box, { paddingBlockEnd: "space.300" }, /*#__PURE__*/_react.default.createElement(_compiled.Text, { as: "p" }, description)), actionsContainer, tertiaryAction); }; var _default = exports.default = EmptyState;