UNPKG

7.63 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
7require('./slicedToArray-ef426d0f.js');
8require('./unsupportedIterableToArray-8a00e599.js');
9var React = require('react');
10var React__default = _interopDefault(React);
11require('./_commonjsHelpers-72d386ba.js');
12var index = require('./index-b0606964.js');
13var defineProperty = require('./defineProperty-0921a47c.js');
14require('./toConsumableArray-7f36359f.js');
15var _styled = require('styled-components');
16var _styled__default = _interopDefault(_styled);
17require('./getPrototypeOf-e2d1e599.js');
18require('./color.js');
19require('./components.js');
20require('./contains-component.js');
21require('./css.js');
22require('./dayjs.min-aa59a48e.js');
23require('./date.js');
24require('./miscellaneous.js');
25require('./environment.js');
26require('./font.js');
27require('./math-ecfd5d91.js');
28require('./characters.js');
29require('./format.js');
30require('./keycodes.js');
31require('./url.js');
32require('./web3.js');
33var constants = require('./constants.js');
34require('./breakpoints.js');
35require('./springs.js');
36var textStyles = require('./text-styles.js');
37require('./theme-dark.js');
38require('./theme-light.js');
39var Theme = require('./Theme.js');
40require('./extends-40571110.js');
41require('./objectWithoutProperties-35db8ab0.js');
42require('./index-ecc57c9f.js');
43require('./FocusVisible.js');
44require('./ButtonBase.js');
45require('./getDisplayName-7ab6d318.js');
46var index$2 = require('./index-2b9f03ad.js');
47var LoadingRing = require('./LoadingRing.js');
48var Link = require('./Link.js');
49
50var illustrationRedImage = "5140b2d928ee3408.png";
51
52var illustrationBlueImage = "665de3412d16a795.png";
53
54function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
55
56function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { defineProperty._defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
57
58function useEmptyStateParts(status, configurator, functionMode) {
59 var publicUrl = index$2.usePublicUrl();
60 var defaultConfigurator = React.useMemo(function () {
61 // eslint-disable-next-line react/prop-types
62 var Illustration = function Illustration(_ref) {
63 var path = _ref.path;
64 return /*#__PURE__*/React__default.createElement("img", {
65 src: publicUrl + path,
66 alt: "",
67 height: 20 * constants.GU
68 });
69 };
70
71 return {
72 default: {
73 displayLoader: false,
74 title: 'No data available.',
75 subtitle: null,
76 illustration: /*#__PURE__*/React__default.createElement(Illustration, {
77 path: illustrationBlueImage
78 }),
79 clearLabel: null
80 },
81 loading: {
82 displayLoader: true,
83 title: 'Loading data…',
84 subtitle: null,
85 illustration: /*#__PURE__*/React__default.createElement(Illustration, {
86 path: illustrationBlueImage
87 }),
88 clearLabel: null
89 },
90 'empty-filters': {
91 displayLoader: false,
92 title: 'No results found.',
93 subtitle: 'We can’t find any item matching your filter selection.',
94 illustration: /*#__PURE__*/React__default.createElement(Illustration, {
95 path: illustrationRedImage
96 }),
97 clearLabel: 'Clear filters'
98 },
99 'empty-search': {
100 displayLoader: false,
101 title: 'No results found.',
102 subtitle: 'We can’t find any item matching your search query.',
103 illustration: /*#__PURE__*/React__default.createElement(Illustration, {
104 path: illustrationRedImage
105 }),
106 clearLabel: 'Clear filters'
107 }
108 };
109 }, [publicUrl]);
110 var parts = functionMode ? {} : configurator[status];
111 return _objectSpread(_objectSpread({}, defaultConfigurator[status]), parts);
112}
113
114var _StyledSection = _styled__default("section").withConfig({
115 displayName: "EmptyState___StyledSection",
116 componentId: "sc-18fsc1i-0"
117})(["display:flex;justify-content:center;align-items:center;"]);
118
119var _StyledDiv = _styled__default("div").withConfig({
120 displayName: "EmptyState___StyledDiv",
121 componentId: "sc-18fsc1i-1"
122})(["width:", "px;padding:", "px 0;text-align:center;"], function (p) {
123 return p._css;
124}, function (p) {
125 return p._css2;
126});
127
128var _StyledDiv2 = _styled__default("div").withConfig({
129 displayName: "EmptyState___StyledDiv2",
130 componentId: "sc-18fsc1i-2"
131})(["padding-bottom:", "px;"], function (p) {
132 return p._css3;
133});
134
135var _StyledH = _styled__default("h1").withConfig({
136 displayName: "EmptyState___StyledH",
137 componentId: "sc-18fsc1i-3"
138})(["", ";display:flex;align-items:center;justify-content:center;"], function (p) {
139 return p._css4;
140});
141
142var _StyledLoadingRing = _styled__default(LoadingRing.default).withConfig({
143 displayName: "EmptyState___StyledLoadingRing",
144 componentId: "sc-18fsc1i-4"
145})(["margin-right:", "px;"], function (p) {
146 return p._css5;
147});
148
149var _StyledDiv3 = _styled__default("div").withConfig({
150 displayName: "EmptyState___StyledDiv3",
151 componentId: "sc-18fsc1i-5"
152})(["color:", ";"], function (p) {
153 return p._css6;
154});
155
156function EmptyState(_ref2) {
157 var status = _ref2.status,
158 configurator = _ref2.configurator,
159 onStatusEmptyClear = _ref2.onStatusEmptyClear;
160 var theme = Theme.useTheme();
161 var functionMode = typeof configurator === 'function';
162 var emptyState = useEmptyStateParts(status, configurator, functionMode);
163 var emptyStateOverride = functionMode ? configurator(status) : null; // Returning an element from the function mode overrides everything.
164 // If `null` or a non-element is returned, the default state is used instead.
165
166 if ( /*#__PURE__*/React__default.isValidElement(emptyStateOverride)) {
167 return emptyStateOverride;
168 }
169
170 return /*#__PURE__*/React__default.createElement(_StyledSection, null, /*#__PURE__*/React__default.createElement(_StyledDiv, {
171 _css: 31 * constants.GU,
172 _css2: 8 * constants.GU
173 }, emptyState.illustration && /*#__PURE__*/React__default.createElement(_StyledDiv2, {
174 _css3: 2 * constants.GU
175 }, emptyState.illustration), emptyState.title && /*#__PURE__*/React__default.createElement(_StyledH, {
176 _css4: textStyles.textStyle('title2')
177 }, emptyState.displayLoader && /*#__PURE__*/React__default.createElement(_StyledLoadingRing, {
178 _css5: 1 * constants.GU
179 }), emptyState.title), emptyState.subtitle && /*#__PURE__*/React__default.createElement(_StyledDiv3, {
180 _css6: theme.surfaceContentSecondary
181 }, emptyState.subtitle, ' ', emptyState.clearLabel && /*#__PURE__*/React__default.createElement(Link.default, {
182 onClick: onStatusEmptyClear
183 }, emptyState.clearLabel))));
184}
185
186EmptyState.propTypes = {
187 status: index.PropTypes.oneOf(['default', 'empty-filters', 'empty-search', 'loading']),
188 configurator: index.PropTypes.object,
189 onStatusEmptyClear: index.PropTypes.func
190};
191
192exports.default = EmptyState;
193//# sourceMappingURL=EmptyState.js.map