@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
61 lines (50 loc) • 1.34 kB
JavaScript
import { createElement } from "@wordpress/element";
/**
* WordPress dependencies
*/
import apiFetch from '@wordpress/api-fetch';
/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */
/**
* A user mentions completer.
*
* @type {WPCompleter}
*/
export default {
name: 'users',
className: 'editor-autocompleters__user',
triggerPrefix: '@',
options(search) {
let payload = '';
if (search) {
payload = '?search=' + encodeURIComponent(search);
}
return apiFetch({
path: '/wp/v2/users' + payload
});
},
isDebounced: true,
getOptionKeywords(user) {
return [user.slug, user.name];
},
getOptionLabel(user) {
const avatar = user.avatar_urls && user.avatar_urls[24] ? createElement("img", {
key: "avatar",
className: "editor-autocompleters__user-avatar",
alt: "",
src: user.avatar_urls[24]
}) : createElement("span", {
className: "editor-autocompleters__no-avatar"
});
return [avatar, createElement("span", {
key: "name",
className: "editor-autocompleters__user-name"
}, user.name), createElement("span", {
key: "slug",
className: "editor-autocompleters__user-slug"
}, user.slug)];
},
getOptionCompletion(user) {
return `@${user.slug}`;
}
};
//# sourceMappingURL=user.js.map