UNPKG

@wordpress/block-editor

Version:
80 lines (64 loc) 1.99 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _element = require("@wordpress/element"); var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch")); var _url = require("@wordpress/url"); var _icons = require("@wordpress/icons"); /** * WordPress dependencies */ // Disable Reason: Needs to be refactored. // eslint-disable-next-line no-restricted-imports const SHOWN_SUGGESTIONS = 10; /** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */ /** * Creates a suggestion list for links to posts or pages. * * @return {WPCompleter} 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 (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_icons.Icon, { key: "icon", icon: item.subtype === 'page' ? _icons.page : _icons.post }), item.title); }, getOptionCompletion(item) { return (0, _element.createElement)("a", { href: item.url }, item.title); } }; } /** * Creates a suggestion list for links to posts or pages.. * * @return {WPCompleter} A link completer. */ var _default = createLinkCompleter(); exports.default = _default; //# sourceMappingURL=link.js.map