@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
8 lines (7 loc) • 2.87 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/autocompleters/user.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Renders a user label for the autocompleter.\n *\n * @param {Object} user User object.\n * @return {React.JSX.Element} User label component.\n */\nexport function getUserLabel( user ) {\n\tconst avatar =\n\t\tuser.avatar_urls && user.avatar_urls[ 24 ] ? (\n\t\t\t<img\n\t\t\t\tclassName=\"editor-autocompleters__user-avatar\"\n\t\t\t\talt=\"\"\n\t\t\t\tsrc={ user.avatar_urls[ 24 ] }\n\t\t\t/>\n\t\t) : (\n\t\t\t<span className=\"editor-autocompleters__no-avatar\"></span>\n\t\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ avatar }\n\t\t\t<span className=\"editor-autocompleters__user-name\">\n\t\t\t\t{ user.name }\n\t\t\t</span>\n\t\t\t<span className=\"editor-autocompleters__user-slug\">\n\t\t\t\t{ user.slug }\n\t\t\t</span>\n\t\t</>\n\t);\n}\n\n/**\n * A user mentions completer.\n *\n * @type {Object}\n */\nexport default {\n\tname: 'users',\n\tclassName: 'editor-autocompleters__user',\n\ttriggerPrefix: '@',\n\n\tuseItems( filterValue ) {\n\t\tconst users = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst { getUsers } = select( coreStore );\n\t\t\t\treturn getUsers( {\n\t\t\t\t\tcontext: 'view',\n\t\t\t\t\tsearch: encodeURIComponent( filterValue ),\n\t\t\t\t} );\n\t\t\t},\n\t\t\t[ filterValue ]\n\t\t);\n\n\t\tconst options = useMemo(\n\t\t\t() =>\n\t\t\t\tusers\n\t\t\t\t\t? users.map( ( user ) => ( {\n\t\t\t\t\t\t\tkey: `user-${ user.slug }`,\n\t\t\t\t\t\t\tvalue: user,\n\t\t\t\t\t\t\tlabel: getUserLabel( user ),\n\t\t\t\t\t } ) )\n\t\t\t\t\t: [],\n\t\t\t[ users ]\n\t\t);\n\n\t\treturn [ options ];\n\t},\n\n\tgetOptionCompletion( user ) {\n\t\treturn `@${ user.slug }`;\n\t},\n};\n"],
"mappings": ";AAGA,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAC1B,SAAS,SAAS,iBAAiB;AAWhC,SAUD,UAVC,KAUD,YAVC;AAHI,SAAS,aAAc,MAAO;AACpC,QAAM,SACL,KAAK,eAAe,KAAK,YAAa,EAAG,IACxC;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,KAAI;AAAA,MACJ,KAAM,KAAK,YAAa,EAAG;AAAA;AAAA,EAC5B,IAEA,oBAAC,UAAK,WAAU,oCAAmC;AAGrD,SACC,iCACG;AAAA;AAAA,IACF,oBAAC,UAAK,WAAU,oCACb,eAAK,MACR;AAAA,IACA,oBAAC,UAAK,WAAU,oCACb,eAAK,MACR;AAAA,KACD;AAEF;AAOA,IAAO,eAAQ;AAAA,EACd,MAAM;AAAA,EACN,WAAW;AAAA,EACX,eAAe;AAAA,EAEf,SAAU,aAAc;AACvB,UAAM,QAAQ;AAAA,MACb,CAAE,WAAY;AACb,cAAM,EAAE,SAAS,IAAI,OAAQ,SAAU;AACvC,eAAO,SAAU;AAAA,UAChB,SAAS;AAAA,UACT,QAAQ,mBAAoB,WAAY;AAAA,QACzC,CAAE;AAAA,MACH;AAAA,MACA,CAAE,WAAY;AAAA,IACf;AAEA,UAAM,UAAU;AAAA,MACf,MACC,QACG,MAAM,IAAK,CAAE,UAAY;AAAA,QACzB,KAAK,QAAS,KAAK,IAAK;AAAA,QACxB,OAAO;AAAA,QACP,OAAO,aAAc,IAAK;AAAA,MAC1B,EAAI,IACJ,CAAC;AAAA,MACL,CAAE,KAAM;AAAA,IACT;AAEA,WAAO,CAAE,OAAQ;AAAA,EAClB;AAAA,EAEA,oBAAqB,MAAO;AAC3B,WAAO,IAAK,KAAK,IAAK;AAAA,EACvB;AACD;",
"names": []
}