UNPKG

7.62 kBSource Map (JSON)View Raw
1{"version":3,"file":"EmptyState.js","sources":["../src/components/DataView/assets/empty-state-illustration-red.png","../src/components/DataView/assets/empty-state-illustration-blue.png","../src/components/DataView/EmptyState.js"],"sourcesContent":["export default \"5140b2d928ee3408.png\"","export default \"665de3412d16a795.png\"","import React, { useMemo } from 'react'\nimport PropTypes from 'prop-types'\nimport { useTheme } from '../../theme'\nimport { GU, textStyle } from '../../style'\nimport { usePublicUrl } from '../../providers/PublicUrl'\nimport LoadingRing from '../LoadingRing/LoadingRing'\nimport Link from '../Link/Link'\n\nimport illustrationRedImage from './assets/empty-state-illustration-red.png'\nimport illustrationBlueImage from './assets/empty-state-illustration-blue.png'\n\nfunction useEmptyStateParts(status, configurator, functionMode) {\n const publicUrl = usePublicUrl()\n\n const defaultConfigurator = useMemo(() => {\n // eslint-disable-next-line react/prop-types\n const Illustration = ({ path }) => (\n <img src={publicUrl + path} alt=\"\" height={20 * GU} />\n )\n return {\n default: {\n displayLoader: false,\n title: 'No data available.',\n subtitle: null,\n illustration: <Illustration path={illustrationBlueImage} />,\n clearLabel: null,\n },\n loading: {\n displayLoader: true,\n title: 'Loading data…',\n subtitle: null,\n illustration: <Illustration path={illustrationBlueImage} />,\n clearLabel: null,\n },\n 'empty-filters': {\n displayLoader: false,\n title: 'No results found.',\n subtitle: 'We can’t find any item matching your filter selection.',\n illustration: <Illustration path={illustrationRedImage} />,\n clearLabel: 'Clear filters',\n },\n 'empty-search': {\n displayLoader: false,\n title: 'No results found.',\n subtitle: 'We can’t find any item matching your search query.',\n illustration: <Illustration path={illustrationRedImage} />,\n clearLabel: 'Clear filters',\n },\n }\n }, [publicUrl])\n\n const parts = functionMode ? {} : configurator[status]\n\n return {\n ...defaultConfigurator[status],\n ...parts,\n }\n}\n\nfunction EmptyState({ status, configurator, onStatusEmptyClear }) {\n const theme = useTheme()\n\n const functionMode = typeof configurator === 'function'\n const emptyState = useEmptyStateParts(status, configurator, functionMode)\n const emptyStateOverride = functionMode ? configurator(status) : null\n\n // Returning an element from the function mode overrides everything.\n // If `null` or a non-element is returned, the default state is used instead.\n if (React.isValidElement(emptyStateOverride)) {\n return emptyStateOverride\n }\n\n return (\n <section\n css={`\n display: flex;\n justify-content: center;\n align-items: center;\n `}\n >\n <div\n css={`\n width: ${31 * GU}px;\n padding: ${8 * GU}px 0;\n text-align: center;\n `}\n >\n {emptyState.illustration && (\n <div\n css={`\n padding-bottom: ${2 * GU}px;\n `}\n >\n {emptyState.illustration}\n </div>\n )}\n\n {emptyState.title && (\n <h1\n css={`\n ${textStyle('title2')};\n display: flex;\n align-items: center;\n justify-content: center;\n `}\n >\n {emptyState.displayLoader && (\n <LoadingRing\n css={`\n margin-right: ${1 * GU}px;\n `}\n />\n )}\n {emptyState.title}\n </h1>\n )}\n\n {emptyState.subtitle && (\n <div\n css={`\n color: ${theme.surfaceContentSecondary};\n `}\n >\n {emptyState.subtitle}{' '}\n {emptyState.clearLabel && (\n <Link onClick={onStatusEmptyClear}>{emptyState.clearLabel}</Link>\n )}\n </div>\n )}\n </div>\n </section>\n )\n}\n\nEmptyState.propTypes = {\n status: PropTypes.oneOf([\n 'default',\n 'empty-filters',\n 'empty-search',\n 'loading',\n ]),\n configurator: PropTypes.object,\n onStatusEmptyClear: PropTypes.func,\n}\n\nexport default EmptyState\n"],"names":["useEmptyStateParts","status","configurator","functionMode","publicUrl","usePublicUrl","defaultConfigurator","useMemo","Illustration","path","React","GU","default","displayLoader","title","subtitle","illustration","illustrationBlueImage","clearLabel","loading","illustrationRedImage","parts","EmptyState","onStatusEmptyClear","theme","useTheme","emptyState","emptyStateOverride","isValidElement","textStyle","surfaceContentSecondary","Link","propTypes","PropTypes","oneOf","object","func"],"mappings":"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"}
\No newline at end of file