UNPKG

@wordpress/block-editor

Version:
69 lines (65 loc) 2.04 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch")); var _url = require("@wordpress/url"); var _icons = require("@wordpress/icons"); var _htmlEntities = require("@wordpress/html-entities"); var _jsxRuntime = require("react/jsx-runtime"); /** * WordPress dependencies */ // Disable Reason: Needs to be refactored. // eslint-disable-next-line no-restricted-imports const SHOWN_SUGGESTIONS = 10; /** * Creates a suggestion list for links to posts or pages. * * @return {Object} A links completer. */ function createLinkCompleter() { return { name: 'links', className: 'block-editor-autocompleters__link', triggerPrefix: '[[', options: async letters => { let options = await (0, _apiFetch.default)({ path: (0, _url.addQueryArgs)('/wp/v2/search', { per_page: SHOWN_SUGGESTIONS, search: letters, type: 'post', order_by: 'menu_order' }) }); options = options.filter(option => option.title !== ''); return options; }, getOptionKeywords(item) { const expansionWords = item.title.split(/\s+/); return [...expansionWords]; }, getOptionLabel(item) { return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, { children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Icon, { icon: item.subtype === 'page' ? _icons.page : _icons.post }, "icon"), (0, _htmlEntities.decodeEntities)(item.title)] }); }, getOptionCompletion(item) { return /*#__PURE__*/(0, _jsxRuntime.jsx)("a", { href: item.url, children: item.title }); } }; } /** * Creates a suggestion list for links to posts or pages.. * * @return {Object} A link completer. */ var _default = exports.default = createLinkCompleter(); //# sourceMappingURL=link.js.map