UNPKG

@wordpress/block-library

Version:
70 lines (68 loc) 1.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = UserControl; var _i18n = require("@wordpress/i18n"); var _components = require("@wordpress/components"); var _data = require("@wordpress/data"); var _coreData = require("@wordpress/core-data"); var _element = require("@wordpress/element"); var _compose = require("@wordpress/compose"); var _htmlEntities = require("@wordpress/html-entities"); var _jsxRuntime = require("react/jsx-runtime"); /** * WordPress dependencies */ const AUTHORS_QUERY = { who: 'authors', per_page: 100, _fields: 'id,name', context: 'view' }; function UserControl({ value, onChange }) { const [filterValue, setFilterValue] = (0, _element.useState)(''); const { authors, isLoading } = (0, _data.useSelect)(select => { const { getUsers, isResolving } = select(_coreData.store); const query = { ...AUTHORS_QUERY }; if (filterValue) { query.search = filterValue; query.search_columns = ['name']; } return { authors: getUsers(query), isLoading: isResolving('getUsers', [query]) }; }, [filterValue]); const options = (0, _element.useMemo)(() => { return (authors !== null && authors !== void 0 ? authors : []).map(author => { return { value: author.id, label: (0, _htmlEntities.decodeEntities)(author.name) }; }); }, [authors]); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ComboboxControl, { __next40pxDefaultSize: true, __nextHasNoMarginBottom: true, label: (0, _i18n.__)('User'), help: (0, _i18n.__)('Select the avatar user to display, if it is blank it will use the post/page author.'), value: value, onChange: onChange, options: options, onFilterValueChange: (0, _compose.debounce)(setFilterValue, 300), isLoading: isLoading }); } //# sourceMappingURL=user-control.js.map