UNPKG

@atlaskit/editor-plugin-quick-insert

Version:

Quick insert plugin for @atlaskit/editor-core

172 lines (170 loc) • 8.3 kB
/* RegistryElementBrowserSearchResults.tsx generated by @compiled/babel-plugin v3.0.2 */ "use strict"; var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.RegistryElementBrowserSearchResults = void 0; require("./RegistryElementBrowserSearchResults.compiled.css"); var _runtime = require("@compiled/react/runtime"); var _react = _interopRequireWildcard(require("react")); var _reactIntl = require("react-intl"); var _messages = require("@atlaskit/editor-common/quick-insert/messages"); var _provider = require("@atlaskit/editor-common/quick-insert/provider"); var _QuickInsertEmptyState = require("../registered-menu/QuickInsertEmptyState"); var _model = require("./model"); var _options = require("./options"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } // oxlint-disable-next-line eslint/no-redeclare var resultsGridStyles = null; // Six half-tile columns line wide and regular tiles up with the three-column grid below: // a regular tile spans two (264px) and a wide tile spans three. var recommendedGridStyles = null; var regularTileStyles = null; var wideTileStyles = null; var groupedResultsStyles = null; var resultGroupStyles = null; var resultGroupHeadingStyles = null; var emptyStateGridItemStyles = null; var styles = { fallbackMarketplace: "_1i531l7x _15a5nqa1 _uwhke4h9 _19pkpxbi _ca0qpxbi" }; var RegistryElementBrowserItem = function RegistryElementBrowserItem(_ref) { var editorView = _ref.editorView, isOffline = _ref.isOffline, isSelected = _ref.isSelected, item = _ref.item, onSelect = _ref.onSelect, surfaceContext = _ref.surfaceContext; var _item$registration = item.registration, Component = _item$registration.component, key = _item$registration.key; var contextValue = (0, _react.useMemo)(function () { return { editorView: editorView, isOffline: isOffline, item: { description: item.description, id: key, isSelected: isSelected }, select: function select(handler) { return onSelect(key, handler); }, surfaceContext: surfaceContext }; }, [editorView, isOffline, isSelected, item.description, key, onSelect, surfaceContext]); if (!Component) { return null; } return /*#__PURE__*/_react.default.createElement(_provider.QuickInsertProvider, { value: contextValue }, /*#__PURE__*/_react.default.createElement(Component, { parents: item.registration.parents, surfaceContext: surfaceContext }, null)); }; var RegistryElementBrowserSearchResults = exports.RegistryElementBrowserSearchResults = function RegistryElementBrowserSearchResults(_ref2) { var editorView = _ref2.editorView, emptyStateHandler = _ref2.emptyStateHandler, fallbackItems = _ref2.fallbackItems, _ref2$isLoading = _ref2.isLoading, isLoading = _ref2$isLoading === void 0 ? false : _ref2$isLoading, isOffline = _ref2.isOffline, items = _ref2.items, query = _ref2.query, recommendedItems = _ref2.recommendedItems, resultsId = _ref2.resultsId, section = _ref2.section, selectedKey = _ref2.selectedKey, surfaceContext = _ref2.surfaceContext, onKeyDown = _ref2.onKeyDown, onSelect = _ref2.onSelect; var _useIntl = (0, _reactIntl.useIntl)(), formatMessage = _useIntl.formatMessage; var groupHeadingIdPrefix = (0, _react.useId)(); var hasFallbackItems = Boolean(!isLoading && items.length === 0 && query.trim().length > 0 && (fallbackItems === null || fallbackItems === void 0 ? void 0 : fallbackItems.length)); var resultsLabel = formatMessage({ defaultMessage: 'Element results', id: 'editor.quick-insert.results-label' }); var displayedItems = hasFallbackItems && fallbackItems ? fallbackItems : items; var groups = recommendedItems.length > 0 ? [{ items: recommendedItems, key: 'recommended', title: formatMessage(_messages.messages.categoryRecommended) }, { items: items, key: 'all-elements', title: formatMessage({ defaultMessage: 'All elements', description: 'Heading above the remaining elements in the element browser All category, shown below the Recommended elements.', id: 'editor.quick-insert.all-elements' }) }].filter(function (group) { return group.items.length > 0; }) : undefined; var isGrouped = groups !== undefined; var renderItems = function renderItems(itemsToRender) { return itemsToRender.map(function (item) { return /*#__PURE__*/_react.default.createElement(RegistryElementBrowserItem, { editorView: editorView, isOffline: isOffline, isSelected: selectedKey === item.registration.key, item: item, key: item.registration.key, onSelect: onSelect, surfaceContext: surfaceContext }); }); }; var shouldRenderEmptyState = items.length === 0 && recommendedItems.length === 0 && !isLoading; var emptyState = shouldRenderEmptyState ? emptyStateHandler === null || emptyStateHandler === void 0 ? void 0 : emptyStateHandler({ mode: 'full', searchTerm: query, selectedCategory: section, showNoResultsMessage: false }) : null; return /*#__PURE__*/_react.default.createElement("div", { "data-testid": "registry-element-browser-results", id: resultsId, tabIndex: -1 }, (isGrouped || displayedItems.length > 0) && /*#__PURE__*/_react.default.createElement("div", { "aria-label": resultsLabel, onFocus: function onFocus(event) { if (event.target === event.currentTarget) { var _getFirstEnabledOptio; (_getFirstEnabledOptio = (0, _options.getFirstEnabledOption)(event.currentTarget)) === null || _getFirstEnabledOptio === void 0 || _getFirstEnabledOptio.focus(); } }, onKeyDown: onKeyDown, role: "listbox", tabIndex: 0, className: (0, _runtime.ax)([isGrouped && "_zulppxbi _1e0c11p5", !isGrouped && "_zulppxbi _ae4vv2br _1e0c11p5 _yv0ei47z _1vhz9sye _frm51m8q"]) }, groups ? groups.map(function (group) { return /*#__PURE__*/_react.default.createElement("div", { "aria-labelledby": "".concat(groupHeadingIdPrefix, "-").concat(group.key), key: group.key, role: "group", className: (0, _runtime.ax)(["_zulpu2gc _1e0c11p5"]) }, /*#__PURE__*/_react.default.createElement("div", { "aria-hidden": true, id: "".concat(groupHeadingIdPrefix, "-").concat(group.key), className: (0, _runtime.ax)(["_11c8i4vh _18zrutpp _syazazsu _85i5u2gc"]) }, group.title), group.key === 'recommended' ? /*#__PURE__*/_react.default.createElement("div", { className: (0, _runtime.ax)(["_zulppxbi _ae4vv2br _1e0c11p5 _yv0ei47z _1vhz9sye _frm51m8q", "_frm51blg"]) }, group.items.map(function (item, index) { var isWide = (0, _model.getRecommendedTileSize)(index, group.items.length) === 'wide'; return /*#__PURE__*/_react.default.createElement("div", { key: item.registration.key, className: (0, _runtime.ax)([isWide && "_1ul9idpf _asa4uojk", !isWide && "_1ul9idpf _asa4g31l"]) }, renderItems([item])); })) : /*#__PURE__*/_react.default.createElement("div", { className: (0, _runtime.ax)(["_zulppxbi _ae4vv2br _1e0c11p5 _yv0ei47z _1vhz9sye _frm51m8q"]) }, renderItems(group.items))); }) : renderItems(displayedItems)), shouldRenderEmptyState && !hasFallbackItems && query.trim().length > 0 && /*#__PURE__*/_react.default.createElement(_QuickInsertEmptyState.QuickInsertEmptyState, { mode: "full" }), emptyState && /*#__PURE__*/_react.default.createElement("div", { className: (0, _runtime.ax)(["_yyhyjvu9 _1ul9idpf _1bsb1osq", styles.fallbackMarketplace]) }, emptyState)); };