@wordpress/plugins 4.6.0 → 4.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/build/api/index.js +1 -7
- package/build/api/index.js.map +1 -1
- package/build/components/plugin-area/index.js +2 -4
- package/build/components/plugin-area/index.js.map +1 -1
- package/build-module/api/index.js +1 -6
- package/build-module/api/index.js.map +1 -1
- package/build-module/components/plugin-area/index.js +2 -3
- package/build-module/components/plugin-area/index.js.map +1 -1
- package/package.json +6 -7
- package/src/api/index.js +1 -6
- package/src/components/plugin-area/index.js +2 -4
package/CHANGELOG.md
CHANGED
package/build/api/index.js
CHANGED
|
@@ -12,18 +12,12 @@ var _hooks = require("@wordpress/hooks");
|
|
|
12
12
|
|
|
13
13
|
var _icons = require("@wordpress/icons");
|
|
14
14
|
|
|
15
|
-
var _lodash = require("lodash");
|
|
16
|
-
|
|
17
15
|
/* eslint no-console: [ 'error', { allow: [ 'error' ] } ] */
|
|
18
16
|
|
|
19
17
|
/**
|
|
20
18
|
* WordPress dependencies
|
|
21
19
|
*/
|
|
22
20
|
|
|
23
|
-
/**
|
|
24
|
-
* External dependencies
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
21
|
/**
|
|
28
22
|
* Defined behavior of a plugin type.
|
|
29
23
|
*
|
|
@@ -151,7 +145,7 @@ function registerPlugin(name, settings) {
|
|
|
151
145
|
scope
|
|
152
146
|
} = settings;
|
|
153
147
|
|
|
154
|
-
if (
|
|
148
|
+
if (typeof render !== 'function') {
|
|
155
149
|
console.error('The "render" property must be specified and must be a valid function.');
|
|
156
150
|
return null;
|
|
157
151
|
}
|
package/build/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/plugins/src/api/index.js"],"names":["plugins","registerPlugin","name","settings","console","error","test","render","scope","icon","pluginsIcon","unregisterPlugin","oldPlugin","getPlugin","getPlugins","Object","values","filter","plugin"],"mappings":";;;;;;;;;;AAKA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/plugins/src/api/index.js"],"names":["plugins","registerPlugin","name","settings","console","error","test","render","scope","icon","pluginsIcon","unregisterPlugin","oldPlugin","getPlugin","getPlugins","Object","values","filter","plugin"],"mappings":";;;;;;;;;;AAKA;;AACA;;AANA;;AAEA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAMA,OAAO,GAAG,EAAhB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,cAAT,CAAyBC,IAAzB,EAA+BC,QAA/B,EAA0C;AAChD,MAAK,OAAOA,QAAP,KAAoB,QAAzB,EAAoC;AACnCC,IAAAA,OAAO,CAACC,KAAR,CAAe,8BAAf;AACA,WAAO,IAAP;AACA;;AACD,MAAK,OAAOH,IAAP,KAAgB,QAArB,EAAgC;AAC/BE,IAAAA,OAAO,CAACC,KAAR,CAAe,6BAAf;AACA,WAAO,IAAP;AACA;;AACD,MAAK,CAAE,oBAAoBC,IAApB,CAA0BJ,IAA1B,CAAP,EAA0C;AACzCE,IAAAA,OAAO,CAACC,KAAR,CACC,2HADD;AAGA,WAAO,IAAP;AACA;;AACD,MAAKL,OAAO,CAAEE,IAAF,CAAZ,EAAuB;AACtBE,IAAAA,OAAO,CAACC,KAAR,CAAgB,WAAWH,IAAM,0BAAjC;AACA;;AAEDC,EAAAA,QAAQ,GAAG,yBAAc,wBAAd,EAAwCA,QAAxC,EAAkDD,IAAlD,CAAX;AAEA,QAAM;AAAEK,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAoBL,QAA1B;;AAEA,MAAK,OAAOI,MAAP,KAAkB,UAAvB,EAAoC;AACnCH,IAAAA,OAAO,CAACC,KAAR,CACC,uEADD;AAGA,WAAO,IAAP;AACA;;AAED,MAAKG,KAAL,EAAa;AACZ,QAAK,OAAOA,KAAP,KAAiB,QAAtB,EAAiC;AAChCJ,MAAAA,OAAO,CAACC,KAAR,CAAe,8BAAf;AACA,aAAO,IAAP;AACA;;AAED,QAAK,CAAE,oBAAoBC,IAApB,CAA0BE,KAA1B,CAAP,EAA2C;AAC1CJ,MAAAA,OAAO,CAACC,KAAR,CACC,0HADD;AAGA,aAAO,IAAP;AACA;AACD;;AAEDL,EAAAA,OAAO,CAAEE,IAAF,CAAP,GAAkB;AACjBA,IAAAA,IADiB;AAEjBO,IAAAA,IAAI,EAAEC,cAFW;AAGjB,OAAGP;AAHc,GAAlB;AAMA,uBAAU,0BAAV,EAAsCA,QAAtC,EAAgDD,IAAhD;AAEA,SAAOC,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASQ,gBAAT,CAA2BT,IAA3B,EAAkC;AACxC,MAAK,CAAEF,OAAO,CAAEE,IAAF,CAAd,EAAyB;AACxBE,IAAAA,OAAO,CAACC,KAAR,CAAe,aAAaH,IAAb,GAAoB,sBAAnC;AACA;AACA;;AACD,QAAMU,SAAS,GAAGZ,OAAO,CAAEE,IAAF,CAAzB;AACA,SAAOF,OAAO,CAAEE,IAAF,CAAd;AAEA,uBAAU,4BAAV,EAAwCU,SAAxC,EAAmDV,IAAnD;AAEA,SAAOU,SAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,SAAT,CAAoBX,IAApB,EAA2B;AACjC,SAAOF,OAAO,CAAEE,IAAF,CAAd;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASY,UAAT,CAAqBN,KAArB,EAA6B;AACnC,SAAOO,MAAM,CAACC,MAAP,CAAehB,OAAf,EAAyBiB,MAAzB,CACJC,MAAF,IAAcA,MAAM,CAACV,KAAP,KAAiBA,KADzB,CAAP;AAGA","sourcesContent":["/* eslint no-console: [ 'error', { allow: [ 'error' ] } ] */\n\n/**\n * WordPress dependencies\n */\nimport { applyFilters, doAction } from '@wordpress/hooks';\nimport { plugins as pluginsIcon } from '@wordpress/icons';\n\n/**\n * Defined behavior of a plugin type.\n *\n * @typedef {Object} WPPlugin\n *\n * @property {string} name A string identifying the plugin. Must be\n * unique across all registered plugins.\n * @property {string|WPElement|Function} [icon] An icon to be shown in the UI. It can\n * be a slug of the Dashicon, or an element\n * (or function returning an element) if you\n * choose to render your own SVG.\n * @property {Function} render A component containing the UI elements\n * to be rendered.\n * @property {string} [scope] The optional scope to be used when rendering inside\n * a plugin area. No scope by default.\n */\n\n/**\n * Plugin definitions keyed by plugin name.\n *\n * @type {Object.<string,WPPlugin>}\n */\nconst plugins = {};\n\n/**\n * Registers a plugin to the editor.\n *\n * @param {string} name A string identifying the plugin.Must be\n * unique across all registered plugins.\n * @param {Omit<WPPlugin, 'name'>} settings The settings for this plugin.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var el = wp.element.createElement;\n * var Fragment = wp.element.Fragment;\n * var PluginSidebar = wp.editPost.PluginSidebar;\n * var PluginSidebarMoreMenuItem = wp.editPost.PluginSidebarMoreMenuItem;\n * var registerPlugin = wp.plugins.registerPlugin;\n * var moreIcon = wp.element.createElement( 'svg' ); //... svg element.\n *\n * function Component() {\n * \treturn el(\n * \t\tFragment,\n * \t\t{},\n * \t\tel(\n * \t\t\tPluginSidebarMoreMenuItem,\n * \t\t\t{\n * \t\t\t\ttarget: 'sidebar-name',\n * \t\t\t},\n * \t\t\t'My Sidebar'\n * \t\t),\n * \t\tel(\n * \t\t\tPluginSidebar,\n * \t\t\t{\n * \t\t\t\tname: 'sidebar-name',\n * \t\t\t\ttitle: 'My Sidebar',\n * \t\t\t},\n * \t\t\t'Content of the sidebar'\n * \t\t)\n * \t);\n * }\n * registerPlugin( 'plugin-name', {\n * \ticon: moreIcon,\n * \trender: Component,\n * \tscope: 'my-page',\n * } );\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { PluginSidebar, PluginSidebarMoreMenuItem } from '@wordpress/edit-post';\n * import { registerPlugin } from '@wordpress/plugins';\n * import { more } from '@wordpress/icons';\n *\n * const Component = () => (\n * \t<>\n * \t\t<PluginSidebarMoreMenuItem\n * \t\t\ttarget=\"sidebar-name\"\n * \t\t>\n * \t\t\tMy Sidebar\n * \t\t</PluginSidebarMoreMenuItem>\n * \t\t<PluginSidebar\n * \t\t\tname=\"sidebar-name\"\n * \t\t\ttitle=\"My Sidebar\"\n * \t\t>\n * \t\t\tContent of the sidebar\n * \t\t</PluginSidebar>\n * \t</>\n * );\n *\n * registerPlugin( 'plugin-name', {\n * \ticon: more,\n * \trender: Component,\n * \tscope: 'my-page',\n * } );\n * ```\n *\n * @return {WPPlugin} The final plugin settings object.\n */\nexport function registerPlugin( name, settings ) {\n\tif ( typeof settings !== 'object' ) {\n\t\tconsole.error( 'No settings object provided!' );\n\t\treturn null;\n\t}\n\tif ( typeof name !== 'string' ) {\n\t\tconsole.error( 'Plugin name must be string.' );\n\t\treturn null;\n\t}\n\tif ( ! /^[a-z][a-z0-9-]*$/.test( name ) ) {\n\t\tconsole.error(\n\t\t\t'Plugin name must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-plugin\".'\n\t\t);\n\t\treturn null;\n\t}\n\tif ( plugins[ name ] ) {\n\t\tconsole.error( `Plugin \"${ name }\" is already registered.` );\n\t}\n\n\tsettings = applyFilters( 'plugins.registerPlugin', settings, name );\n\n\tconst { render, scope } = settings;\n\n\tif ( typeof render !== 'function' ) {\n\t\tconsole.error(\n\t\t\t'The \"render\" property must be specified and must be a valid function.'\n\t\t);\n\t\treturn null;\n\t}\n\n\tif ( scope ) {\n\t\tif ( typeof scope !== 'string' ) {\n\t\t\tconsole.error( 'Plugin scope must be string.' );\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( ! /^[a-z][a-z0-9-]*$/.test( scope ) ) {\n\t\t\tconsole.error(\n\t\t\t\t'Plugin scope must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-page\".'\n\t\t\t);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tplugins[ name ] = {\n\t\tname,\n\t\ticon: pluginsIcon,\n\t\t...settings,\n\t};\n\n\tdoAction( 'plugins.pluginRegistered', settings, name );\n\n\treturn settings;\n}\n\n/**\n * Unregisters a plugin by name.\n *\n * @param {string} name Plugin name.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var unregisterPlugin = wp.plugins.unregisterPlugin;\n *\n * unregisterPlugin( 'plugin-name' );\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { unregisterPlugin } from '@wordpress/plugins';\n *\n * unregisterPlugin( 'plugin-name' );\n * ```\n *\n * @return {?WPPlugin} The previous plugin settings object, if it has been\n * successfully unregistered; otherwise `undefined`.\n */\nexport function unregisterPlugin( name ) {\n\tif ( ! plugins[ name ] ) {\n\t\tconsole.error( 'Plugin \"' + name + '\" is not registered.' );\n\t\treturn;\n\t}\n\tconst oldPlugin = plugins[ name ];\n\tdelete plugins[ name ];\n\n\tdoAction( 'plugins.pluginUnregistered', oldPlugin, name );\n\n\treturn oldPlugin;\n}\n\n/**\n * Returns a registered plugin settings.\n *\n * @param {string} name Plugin name.\n *\n * @return {?WPPlugin} Plugin setting.\n */\nexport function getPlugin( name ) {\n\treturn plugins[ name ];\n}\n\n/**\n * Returns all registered plugins without a scope or for a given scope.\n *\n * @param {string} [scope] The scope to be used when rendering inside\n * a plugin area. No scope by default.\n *\n * @return {WPPlugin[]} The list of plugins without a scope or for a given scope.\n */\nexport function getPlugins( scope ) {\n\treturn Object.values( plugins ).filter(\n\t\t( plugin ) => plugin.scope === scope\n\t);\n}\n"]}
|
|
@@ -9,8 +9,6 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _element = require("@wordpress/element");
|
|
11
11
|
|
|
12
|
-
var _lodash = require("lodash");
|
|
13
|
-
|
|
14
12
|
var _memize = _interopRequireDefault(require("memize"));
|
|
15
13
|
|
|
16
14
|
var _hooks = require("@wordpress/hooks");
|
|
@@ -82,7 +80,7 @@ class PluginArea extends _element.Component {
|
|
|
82
80
|
|
|
83
81
|
getCurrentPluginsState() {
|
|
84
82
|
return {
|
|
85
|
-
plugins: (0,
|
|
83
|
+
plugins: (0, _api.getPlugins)(this.props.scope).map(_ref => {
|
|
86
84
|
let {
|
|
87
85
|
icon,
|
|
88
86
|
name,
|
|
@@ -115,7 +113,7 @@ class PluginArea extends _element.Component {
|
|
|
115
113
|
style: {
|
|
116
114
|
display: 'none'
|
|
117
115
|
}
|
|
118
|
-
},
|
|
116
|
+
}, this.state.plugins.map(_ref2 => {
|
|
119
117
|
let {
|
|
120
118
|
context,
|
|
121
119
|
Plugin
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/plugins/src/components/plugin-area/index.js"],"names":["PluginArea","Component","constructor","arguments","setPlugins","bind","memoizedContext","name","icon","state","getCurrentPluginsState","plugins","props","scope","render","Plugin","context","componentDidMount","componentWillUnmount","setState","display","onError"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/plugins/src/components/plugin-area/index.js"],"names":["PluginArea","Component","constructor","arguments","setPlugins","bind","memoizedContext","name","icon","state","getCurrentPluginsState","plugins","props","scope","map","render","Plugin","context","componentDidMount","componentWillUnmount","setState","display","onError"],"mappings":";;;;;;;;;AAQA;;AALA;;AAMA;;AAKA;;AACA;;AACA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,UAAN,SAAyBC,kBAAzB,CAAmC;AAClCC,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AAEA,SAAKC,UAAL,GAAkB,KAAKA,UAAL,CAAgBC,IAAhB,CAAsB,IAAtB,CAAlB;AACA,SAAKC,eAAL,GAAuB,qBAAS,CAAEC,IAAF,EAAQC,IAAR,KAAkB;AACjD,aAAO;AACND,QAAAA,IADM;AAENC,QAAAA;AAFM,OAAP;AAIA,KALsB,CAAvB;AAMA,SAAKC,KAAL,GAAa,KAAKC,sBAAL,EAAb;AACA;;AAEDA,EAAAA,sBAAsB,GAAG;AACxB,WAAO;AACNC,MAAAA,OAAO,EAAE,qBAAY,KAAKC,KAAL,CAAWC,KAAvB,EAA+BC,GAA/B,CACR,QAA8B;AAAA,YAA5B;AAAEN,UAAAA,IAAF;AAAQD,UAAAA,IAAR;AAAcQ,UAAAA;AAAd,SAA4B;AAC7B,eAAO;AACNC,UAAAA,MAAM,EAAED,MADF;AAENE,UAAAA,OAAO,EAAE,KAAKX,eAAL,CAAsBC,IAAtB,EAA4BC,IAA5B;AAFH,SAAP;AAIA,OANO;AADH,KAAP;AAUA;;AAEDU,EAAAA,iBAAiB,GAAG;AACnB,0BACC,0BADD,EAEC,6CAFD,EAGC,KAAKd,UAHN;AAKA,0BACC,4BADD,EAEC,+CAFD,EAGC,KAAKA,UAHN;AAKA;;AAEDe,EAAAA,oBAAoB,GAAG;AACtB,6BACC,0BADD,EAEC,6CAFD;AAIA,6BACC,4BADD,EAEC,+CAFD;AAIA;;AAEDf,EAAAA,UAAU,GAAG;AACZ,SAAKgB,QAAL,CAAe,KAAKV,sBAApB;AACA;;AAEDK,EAAAA,MAAM,GAAG;AACR,WACC;AAAK,MAAA,KAAK,EAAG;AAAEM,QAAAA,OAAO,EAAE;AAAX;AAAb,OACG,KAAKZ,KAAL,CAAWE,OAAX,CAAmBG,GAAnB,CAAwB;AAAA,UAAE;AAAEG,QAAAA,OAAF;AAAWD,QAAAA;AAAX,OAAF;AAAA,aACzB,4BAAC,oCAAD;AACC,QAAA,GAAG,EAAGC,OAAO,CAACV,IADf;AAEC,QAAA,KAAK,EAAGU;AAFT,SAIC,4BAAC,wCAAD;AACC,QAAA,IAAI,EAAGA,OAAO,CAACV,IADhB;AAEC,QAAA,OAAO,EAAG,KAAKK,KAAL,CAAWU;AAFtB,SAIC,4BAAC,MAAD,OAJD,CAJD,CADyB;AAAA,KAAxB,CADH,CADD;AAiBA;;AAzEiC;;eA4EpBtB,U","sourcesContent":["/**\n * External dependencies\n */\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { addAction, removeAction } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { PluginContextProvider } from '../plugin-context';\nimport { PluginErrorBoundary } from '../plugin-error-boundary';\nimport { getPlugins } from '../../api';\n\n/**\n * A component that renders all plugin fills in a hidden div.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var el = wp.element.createElement;\n * var PluginArea = wp.plugins.PluginArea;\n *\n * function Layout() {\n * \treturn el(\n * \t\t'div',\n * \t\t{ scope: 'my-page' },\n * \t\t'Content of the page',\n * \t\tPluginArea\n * \t);\n * }\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { PluginArea } from '@wordpress/plugins';\n *\n * const Layout = () => (\n * \t<div>\n * \t\tContent of the page\n * \t\t<PluginArea scope=\"my-page\" />\n * \t</div>\n * );\n * ```\n *\n * @return {WPComponent} The component to be rendered.\n */\nclass PluginArea extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.setPlugins = this.setPlugins.bind( this );\n\t\tthis.memoizedContext = memoize( ( name, icon ) => {\n\t\t\treturn {\n\t\t\t\tname,\n\t\t\t\ticon,\n\t\t\t};\n\t\t} );\n\t\tthis.state = this.getCurrentPluginsState();\n\t}\n\n\tgetCurrentPluginsState() {\n\t\treturn {\n\t\t\tplugins: getPlugins( this.props.scope ).map(\n\t\t\t\t( { icon, name, render } ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tPlugin: render,\n\t\t\t\t\t\tcontext: this.memoizedContext( name, icon ),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t),\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\taddAction(\n\t\t\t'plugins.pluginRegistered',\n\t\t\t'core/plugins/plugin-area/plugins-registered',\n\t\t\tthis.setPlugins\n\t\t);\n\t\taddAction(\n\t\t\t'plugins.pluginUnregistered',\n\t\t\t'core/plugins/plugin-area/plugins-unregistered',\n\t\t\tthis.setPlugins\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tremoveAction(\n\t\t\t'plugins.pluginRegistered',\n\t\t\t'core/plugins/plugin-area/plugins-registered'\n\t\t);\n\t\tremoveAction(\n\t\t\t'plugins.pluginUnregistered',\n\t\t\t'core/plugins/plugin-area/plugins-unregistered'\n\t\t);\n\t}\n\n\tsetPlugins() {\n\t\tthis.setState( this.getCurrentPluginsState );\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<div style={ { display: 'none' } }>\n\t\t\t\t{ this.state.plugins.map( ( { context, Plugin } ) => (\n\t\t\t\t\t<PluginContextProvider\n\t\t\t\t\t\tkey={ context.name }\n\t\t\t\t\t\tvalue={ context }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PluginErrorBoundary\n\t\t\t\t\t\t\tname={ context.name }\n\t\t\t\t\t\t\tonError={ this.props.onError }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Plugin />\n\t\t\t\t\t\t</PluginErrorBoundary>\n\t\t\t\t\t</PluginContextProvider>\n\t\t\t\t) ) }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default PluginArea;\n"]}
|
|
@@ -5,11 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { applyFilters, doAction } from '@wordpress/hooks';
|
|
7
7
|
import { plugins as pluginsIcon } from '@wordpress/icons';
|
|
8
|
-
/**
|
|
9
|
-
* External dependencies
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
import { isFunction } from 'lodash';
|
|
13
8
|
/**
|
|
14
9
|
* Defined behavior of a plugin type.
|
|
15
10
|
*
|
|
@@ -138,7 +133,7 @@ export function registerPlugin(name, settings) {
|
|
|
138
133
|
scope
|
|
139
134
|
} = settings;
|
|
140
135
|
|
|
141
|
-
if (
|
|
136
|
+
if (typeof render !== 'function') {
|
|
142
137
|
console.error('The "render" property must be specified and must be a valid function.');
|
|
143
138
|
return null;
|
|
144
139
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/plugins/src/api/index.js"],"names":["applyFilters","doAction","plugins","pluginsIcon","
|
|
1
|
+
{"version":3,"sources":["@wordpress/plugins/src/api/index.js"],"names":["applyFilters","doAction","plugins","pluginsIcon","registerPlugin","name","settings","console","error","test","render","scope","icon","unregisterPlugin","oldPlugin","getPlugin","getPlugins","Object","values","filter","plugin"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA,SAASA,YAAT,EAAuBC,QAAvB,QAAuC,kBAAvC;AACA,SAASC,OAAO,IAAIC,WAApB,QAAuC,kBAAvC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AACA,MAAMD,OAAO,GAAG,EAAhB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASE,cAAT,CAAyBC,IAAzB,EAA+BC,QAA/B,EAA0C;AAChD,MAAK,OAAOA,QAAP,KAAoB,QAAzB,EAAoC;AACnCC,IAAAA,OAAO,CAACC,KAAR,CAAe,8BAAf;AACA,WAAO,IAAP;AACA;;AACD,MAAK,OAAOH,IAAP,KAAgB,QAArB,EAAgC;AAC/BE,IAAAA,OAAO,CAACC,KAAR,CAAe,6BAAf;AACA,WAAO,IAAP;AACA;;AACD,MAAK,CAAE,oBAAoBC,IAApB,CAA0BJ,IAA1B,CAAP,EAA0C;AACzCE,IAAAA,OAAO,CAACC,KAAR,CACC,2HADD;AAGA,WAAO,IAAP;AACA;;AACD,MAAKN,OAAO,CAAEG,IAAF,CAAZ,EAAuB;AACtBE,IAAAA,OAAO,CAACC,KAAR,CAAgB,WAAWH,IAAM,0BAAjC;AACA;;AAEDC,EAAAA,QAAQ,GAAGN,YAAY,CAAE,wBAAF,EAA4BM,QAA5B,EAAsCD,IAAtC,CAAvB;AAEA,QAAM;AAAEK,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAoBL,QAA1B;;AAEA,MAAK,OAAOI,MAAP,KAAkB,UAAvB,EAAoC;AACnCH,IAAAA,OAAO,CAACC,KAAR,CACC,uEADD;AAGA,WAAO,IAAP;AACA;;AAED,MAAKG,KAAL,EAAa;AACZ,QAAK,OAAOA,KAAP,KAAiB,QAAtB,EAAiC;AAChCJ,MAAAA,OAAO,CAACC,KAAR,CAAe,8BAAf;AACA,aAAO,IAAP;AACA;;AAED,QAAK,CAAE,oBAAoBC,IAApB,CAA0BE,KAA1B,CAAP,EAA2C;AAC1CJ,MAAAA,OAAO,CAACC,KAAR,CACC,0HADD;AAGA,aAAO,IAAP;AACA;AACD;;AAEDN,EAAAA,OAAO,CAAEG,IAAF,CAAP,GAAkB;AACjBA,IAAAA,IADiB;AAEjBO,IAAAA,IAAI,EAAET,WAFW;AAGjB,OAAGG;AAHc,GAAlB;AAMAL,EAAAA,QAAQ,CAAE,0BAAF,EAA8BK,QAA9B,EAAwCD,IAAxC,CAAR;AAEA,SAAOC,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASO,gBAAT,CAA2BR,IAA3B,EAAkC;AACxC,MAAK,CAAEH,OAAO,CAAEG,IAAF,CAAd,EAAyB;AACxBE,IAAAA,OAAO,CAACC,KAAR,CAAe,aAAaH,IAAb,GAAoB,sBAAnC;AACA;AACA;;AACD,QAAMS,SAAS,GAAGZ,OAAO,CAAEG,IAAF,CAAzB;AACA,SAAOH,OAAO,CAAEG,IAAF,CAAd;AAEAJ,EAAAA,QAAQ,CAAE,4BAAF,EAAgCa,SAAhC,EAA2CT,IAA3C,CAAR;AAEA,SAAOS,SAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,SAAT,CAAoBV,IAApB,EAA2B;AACjC,SAAOH,OAAO,CAAEG,IAAF,CAAd;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASW,UAAT,CAAqBL,KAArB,EAA6B;AACnC,SAAOM,MAAM,CAACC,MAAP,CAAehB,OAAf,EAAyBiB,MAAzB,CACJC,MAAF,IAAcA,MAAM,CAACT,KAAP,KAAiBA,KADzB,CAAP;AAGA","sourcesContent":["/* eslint no-console: [ 'error', { allow: [ 'error' ] } ] */\n\n/**\n * WordPress dependencies\n */\nimport { applyFilters, doAction } from '@wordpress/hooks';\nimport { plugins as pluginsIcon } from '@wordpress/icons';\n\n/**\n * Defined behavior of a plugin type.\n *\n * @typedef {Object} WPPlugin\n *\n * @property {string} name A string identifying the plugin. Must be\n * unique across all registered plugins.\n * @property {string|WPElement|Function} [icon] An icon to be shown in the UI. It can\n * be a slug of the Dashicon, or an element\n * (or function returning an element) if you\n * choose to render your own SVG.\n * @property {Function} render A component containing the UI elements\n * to be rendered.\n * @property {string} [scope] The optional scope to be used when rendering inside\n * a plugin area. No scope by default.\n */\n\n/**\n * Plugin definitions keyed by plugin name.\n *\n * @type {Object.<string,WPPlugin>}\n */\nconst plugins = {};\n\n/**\n * Registers a plugin to the editor.\n *\n * @param {string} name A string identifying the plugin.Must be\n * unique across all registered plugins.\n * @param {Omit<WPPlugin, 'name'>} settings The settings for this plugin.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var el = wp.element.createElement;\n * var Fragment = wp.element.Fragment;\n * var PluginSidebar = wp.editPost.PluginSidebar;\n * var PluginSidebarMoreMenuItem = wp.editPost.PluginSidebarMoreMenuItem;\n * var registerPlugin = wp.plugins.registerPlugin;\n * var moreIcon = wp.element.createElement( 'svg' ); //... svg element.\n *\n * function Component() {\n * \treturn el(\n * \t\tFragment,\n * \t\t{},\n * \t\tel(\n * \t\t\tPluginSidebarMoreMenuItem,\n * \t\t\t{\n * \t\t\t\ttarget: 'sidebar-name',\n * \t\t\t},\n * \t\t\t'My Sidebar'\n * \t\t),\n * \t\tel(\n * \t\t\tPluginSidebar,\n * \t\t\t{\n * \t\t\t\tname: 'sidebar-name',\n * \t\t\t\ttitle: 'My Sidebar',\n * \t\t\t},\n * \t\t\t'Content of the sidebar'\n * \t\t)\n * \t);\n * }\n * registerPlugin( 'plugin-name', {\n * \ticon: moreIcon,\n * \trender: Component,\n * \tscope: 'my-page',\n * } );\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { PluginSidebar, PluginSidebarMoreMenuItem } from '@wordpress/edit-post';\n * import { registerPlugin } from '@wordpress/plugins';\n * import { more } from '@wordpress/icons';\n *\n * const Component = () => (\n * \t<>\n * \t\t<PluginSidebarMoreMenuItem\n * \t\t\ttarget=\"sidebar-name\"\n * \t\t>\n * \t\t\tMy Sidebar\n * \t\t</PluginSidebarMoreMenuItem>\n * \t\t<PluginSidebar\n * \t\t\tname=\"sidebar-name\"\n * \t\t\ttitle=\"My Sidebar\"\n * \t\t>\n * \t\t\tContent of the sidebar\n * \t\t</PluginSidebar>\n * \t</>\n * );\n *\n * registerPlugin( 'plugin-name', {\n * \ticon: more,\n * \trender: Component,\n * \tscope: 'my-page',\n * } );\n * ```\n *\n * @return {WPPlugin} The final plugin settings object.\n */\nexport function registerPlugin( name, settings ) {\n\tif ( typeof settings !== 'object' ) {\n\t\tconsole.error( 'No settings object provided!' );\n\t\treturn null;\n\t}\n\tif ( typeof name !== 'string' ) {\n\t\tconsole.error( 'Plugin name must be string.' );\n\t\treturn null;\n\t}\n\tif ( ! /^[a-z][a-z0-9-]*$/.test( name ) ) {\n\t\tconsole.error(\n\t\t\t'Plugin name must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-plugin\".'\n\t\t);\n\t\treturn null;\n\t}\n\tif ( plugins[ name ] ) {\n\t\tconsole.error( `Plugin \"${ name }\" is already registered.` );\n\t}\n\n\tsettings = applyFilters( 'plugins.registerPlugin', settings, name );\n\n\tconst { render, scope } = settings;\n\n\tif ( typeof render !== 'function' ) {\n\t\tconsole.error(\n\t\t\t'The \"render\" property must be specified and must be a valid function.'\n\t\t);\n\t\treturn null;\n\t}\n\n\tif ( scope ) {\n\t\tif ( typeof scope !== 'string' ) {\n\t\t\tconsole.error( 'Plugin scope must be string.' );\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( ! /^[a-z][a-z0-9-]*$/.test( scope ) ) {\n\t\t\tconsole.error(\n\t\t\t\t'Plugin scope must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-page\".'\n\t\t\t);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tplugins[ name ] = {\n\t\tname,\n\t\ticon: pluginsIcon,\n\t\t...settings,\n\t};\n\n\tdoAction( 'plugins.pluginRegistered', settings, name );\n\n\treturn settings;\n}\n\n/**\n * Unregisters a plugin by name.\n *\n * @param {string} name Plugin name.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var unregisterPlugin = wp.plugins.unregisterPlugin;\n *\n * unregisterPlugin( 'plugin-name' );\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { unregisterPlugin } from '@wordpress/plugins';\n *\n * unregisterPlugin( 'plugin-name' );\n * ```\n *\n * @return {?WPPlugin} The previous plugin settings object, if it has been\n * successfully unregistered; otherwise `undefined`.\n */\nexport function unregisterPlugin( name ) {\n\tif ( ! plugins[ name ] ) {\n\t\tconsole.error( 'Plugin \"' + name + '\" is not registered.' );\n\t\treturn;\n\t}\n\tconst oldPlugin = plugins[ name ];\n\tdelete plugins[ name ];\n\n\tdoAction( 'plugins.pluginUnregistered', oldPlugin, name );\n\n\treturn oldPlugin;\n}\n\n/**\n * Returns a registered plugin settings.\n *\n * @param {string} name Plugin name.\n *\n * @return {?WPPlugin} Plugin setting.\n */\nexport function getPlugin( name ) {\n\treturn plugins[ name ];\n}\n\n/**\n * Returns all registered plugins without a scope or for a given scope.\n *\n * @param {string} [scope] The scope to be used when rendering inside\n * a plugin area. No scope by default.\n *\n * @return {WPPlugin[]} The list of plugins without a scope or for a given scope.\n */\nexport function getPlugins( scope ) {\n\treturn Object.values( plugins ).filter(\n\t\t( plugin ) => plugin.scope === scope\n\t);\n}\n"]}
|
|
@@ -3,7 +3,6 @@ import { createElement } from "@wordpress/element";
|
|
|
3
3
|
/**
|
|
4
4
|
* External dependencies
|
|
5
5
|
*/
|
|
6
|
-
import { map } from 'lodash';
|
|
7
6
|
import memoize from 'memize';
|
|
8
7
|
/**
|
|
9
8
|
* WordPress dependencies
|
|
@@ -68,7 +67,7 @@ class PluginArea extends Component {
|
|
|
68
67
|
|
|
69
68
|
getCurrentPluginsState() {
|
|
70
69
|
return {
|
|
71
|
-
plugins:
|
|
70
|
+
plugins: getPlugins(this.props.scope).map(_ref => {
|
|
72
71
|
let {
|
|
73
72
|
icon,
|
|
74
73
|
name,
|
|
@@ -101,7 +100,7 @@ class PluginArea extends Component {
|
|
|
101
100
|
style: {
|
|
102
101
|
display: 'none'
|
|
103
102
|
}
|
|
104
|
-
},
|
|
103
|
+
}, this.state.plugins.map(_ref2 => {
|
|
105
104
|
let {
|
|
106
105
|
context,
|
|
107
106
|
Plugin
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/plugins/src/components/plugin-area/index.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["@wordpress/plugins/src/components/plugin-area/index.js"],"names":["memoize","Component","addAction","removeAction","PluginContextProvider","PluginErrorBoundary","getPlugins","PluginArea","constructor","arguments","setPlugins","bind","memoizedContext","name","icon","state","getCurrentPluginsState","plugins","props","scope","map","render","Plugin","context","componentDidMount","componentWillUnmount","setState","display","onError"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,OAAP,MAAoB,QAApB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,oBAA1B;AACA,SAASC,SAAT,EAAoBC,YAApB,QAAwC,kBAAxC;AAEA;AACA;AACA;;AACA,SAASC,qBAAT,QAAsC,mBAAtC;AACA,SAASC,mBAAT,QAAoC,0BAApC;AACA,SAASC,UAAT,QAA2B,WAA3B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,UAAN,SAAyBN,SAAzB,CAAmC;AAClCO,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AAEA,SAAKC,UAAL,GAAkB,KAAKA,UAAL,CAAgBC,IAAhB,CAAsB,IAAtB,CAAlB;AACA,SAAKC,eAAL,GAAuBZ,OAAO,CAAE,CAAEa,IAAF,EAAQC,IAAR,KAAkB;AACjD,aAAO;AACND,QAAAA,IADM;AAENC,QAAAA;AAFM,OAAP;AAIA,KAL6B,CAA9B;AAMA,SAAKC,KAAL,GAAa,KAAKC,sBAAL,EAAb;AACA;;AAEDA,EAAAA,sBAAsB,GAAG;AACxB,WAAO;AACNC,MAAAA,OAAO,EAAEX,UAAU,CAAE,KAAKY,KAAL,CAAWC,KAAb,CAAV,CAA+BC,GAA/B,CACR,QAA8B;AAAA,YAA5B;AAAEN,UAAAA,IAAF;AAAQD,UAAAA,IAAR;AAAcQ,UAAAA;AAAd,SAA4B;AAC7B,eAAO;AACNC,UAAAA,MAAM,EAAED,MADF;AAENE,UAAAA,OAAO,EAAE,KAAKX,eAAL,CAAsBC,IAAtB,EAA4BC,IAA5B;AAFH,SAAP;AAIA,OANO;AADH,KAAP;AAUA;;AAEDU,EAAAA,iBAAiB,GAAG;AACnBtB,IAAAA,SAAS,CACR,0BADQ,EAER,6CAFQ,EAGR,KAAKQ,UAHG,CAAT;AAKAR,IAAAA,SAAS,CACR,4BADQ,EAER,+CAFQ,EAGR,KAAKQ,UAHG,CAAT;AAKA;;AAEDe,EAAAA,oBAAoB,GAAG;AACtBtB,IAAAA,YAAY,CACX,0BADW,EAEX,6CAFW,CAAZ;AAIAA,IAAAA,YAAY,CACX,4BADW,EAEX,+CAFW,CAAZ;AAIA;;AAEDO,EAAAA,UAAU,GAAG;AACZ,SAAKgB,QAAL,CAAe,KAAKV,sBAApB;AACA;;AAEDK,EAAAA,MAAM,GAAG;AACR,WACC;AAAK,MAAA,KAAK,EAAG;AAAEM,QAAAA,OAAO,EAAE;AAAX;AAAb,OACG,KAAKZ,KAAL,CAAWE,OAAX,CAAmBG,GAAnB,CAAwB;AAAA,UAAE;AAAEG,QAAAA,OAAF;AAAWD,QAAAA;AAAX,OAAF;AAAA,aACzB,cAAC,qBAAD;AACC,QAAA,GAAG,EAAGC,OAAO,CAACV,IADf;AAEC,QAAA,KAAK,EAAGU;AAFT,SAIC,cAAC,mBAAD;AACC,QAAA,IAAI,EAAGA,OAAO,CAACV,IADhB;AAEC,QAAA,OAAO,EAAG,KAAKK,KAAL,CAAWU;AAFtB,SAIC,cAAC,MAAD,OAJD,CAJD,CADyB;AAAA,KAAxB,CADH,CADD;AAiBA;;AAzEiC;;AA4EnC,eAAerB,UAAf","sourcesContent":["/**\n * External dependencies\n */\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { addAction, removeAction } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { PluginContextProvider } from '../plugin-context';\nimport { PluginErrorBoundary } from '../plugin-error-boundary';\nimport { getPlugins } from '../../api';\n\n/**\n * A component that renders all plugin fills in a hidden div.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var el = wp.element.createElement;\n * var PluginArea = wp.plugins.PluginArea;\n *\n * function Layout() {\n * \treturn el(\n * \t\t'div',\n * \t\t{ scope: 'my-page' },\n * \t\t'Content of the page',\n * \t\tPluginArea\n * \t);\n * }\n * ```\n *\n * @example\n * ```js\n * // Using ESNext syntax\n * import { PluginArea } from '@wordpress/plugins';\n *\n * const Layout = () => (\n * \t<div>\n * \t\tContent of the page\n * \t\t<PluginArea scope=\"my-page\" />\n * \t</div>\n * );\n * ```\n *\n * @return {WPComponent} The component to be rendered.\n */\nclass PluginArea extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.setPlugins = this.setPlugins.bind( this );\n\t\tthis.memoizedContext = memoize( ( name, icon ) => {\n\t\t\treturn {\n\t\t\t\tname,\n\t\t\t\ticon,\n\t\t\t};\n\t\t} );\n\t\tthis.state = this.getCurrentPluginsState();\n\t}\n\n\tgetCurrentPluginsState() {\n\t\treturn {\n\t\t\tplugins: getPlugins( this.props.scope ).map(\n\t\t\t\t( { icon, name, render } ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tPlugin: render,\n\t\t\t\t\t\tcontext: this.memoizedContext( name, icon ),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t),\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\taddAction(\n\t\t\t'plugins.pluginRegistered',\n\t\t\t'core/plugins/plugin-area/plugins-registered',\n\t\t\tthis.setPlugins\n\t\t);\n\t\taddAction(\n\t\t\t'plugins.pluginUnregistered',\n\t\t\t'core/plugins/plugin-area/plugins-unregistered',\n\t\t\tthis.setPlugins\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tremoveAction(\n\t\t\t'plugins.pluginRegistered',\n\t\t\t'core/plugins/plugin-area/plugins-registered'\n\t\t);\n\t\tremoveAction(\n\t\t\t'plugins.pluginUnregistered',\n\t\t\t'core/plugins/plugin-area/plugins-unregistered'\n\t\t);\n\t}\n\n\tsetPlugins() {\n\t\tthis.setState( this.getCurrentPluginsState );\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<div style={ { display: 'none' } }>\n\t\t\t\t{ this.state.plugins.map( ( { context, Plugin } ) => (\n\t\t\t\t\t<PluginContextProvider\n\t\t\t\t\t\tkey={ context.name }\n\t\t\t\t\t\tvalue={ context }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PluginErrorBoundary\n\t\t\t\t\t\t\tname={ context.name }\n\t\t\t\t\t\t\tonError={ this.props.onError }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Plugin />\n\t\t\t\t\t\t</PluginErrorBoundary>\n\t\t\t\t\t</PluginContextProvider>\n\t\t\t\t) ) }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default PluginArea;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/plugins",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.9.0",
|
|
4
4
|
"description": "Plugins module for WordPress.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -26,11 +26,10 @@
|
|
|
26
26
|
"react-native": "src/index",
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@babel/runtime": "^7.16.0",
|
|
29
|
-
"@wordpress/compose": "^5.
|
|
30
|
-
"@wordpress/element": "^4.
|
|
31
|
-
"@wordpress/hooks": "^3.
|
|
32
|
-
"@wordpress/icons": "^
|
|
33
|
-
"lodash": "^4.17.21",
|
|
29
|
+
"@wordpress/compose": "^5.9.0",
|
|
30
|
+
"@wordpress/element": "^4.9.0",
|
|
31
|
+
"@wordpress/hooks": "^3.11.0",
|
|
32
|
+
"@wordpress/icons": "^9.2.0",
|
|
34
33
|
"memize": "^1.1.0"
|
|
35
34
|
},
|
|
36
35
|
"peerDependencies": {
|
|
@@ -39,5 +38,5 @@
|
|
|
39
38
|
"publishConfig": {
|
|
40
39
|
"access": "public"
|
|
41
40
|
},
|
|
42
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "48d5f37dfb52d2e77c8eeb662f9874cf141b8c6b"
|
|
43
42
|
}
|
package/src/api/index.js
CHANGED
|
@@ -6,11 +6,6 @@
|
|
|
6
6
|
import { applyFilters, doAction } from '@wordpress/hooks';
|
|
7
7
|
import { plugins as pluginsIcon } from '@wordpress/icons';
|
|
8
8
|
|
|
9
|
-
/**
|
|
10
|
-
* External dependencies
|
|
11
|
-
*/
|
|
12
|
-
import { isFunction } from 'lodash';
|
|
13
|
-
|
|
14
9
|
/**
|
|
15
10
|
* Defined behavior of a plugin type.
|
|
16
11
|
*
|
|
@@ -135,7 +130,7 @@ export function registerPlugin( name, settings ) {
|
|
|
135
130
|
|
|
136
131
|
const { render, scope } = settings;
|
|
137
132
|
|
|
138
|
-
if (
|
|
133
|
+
if ( typeof render !== 'function' ) {
|
|
139
134
|
console.error(
|
|
140
135
|
'The "render" property must be specified and must be a valid function.'
|
|
141
136
|
);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { map } from 'lodash';
|
|
5
4
|
import memoize from 'memize';
|
|
6
5
|
|
|
7
6
|
/**
|
|
@@ -67,8 +66,7 @@ class PluginArea extends Component {
|
|
|
67
66
|
|
|
68
67
|
getCurrentPluginsState() {
|
|
69
68
|
return {
|
|
70
|
-
plugins: map(
|
|
71
|
-
getPlugins( this.props.scope ),
|
|
69
|
+
plugins: getPlugins( this.props.scope ).map(
|
|
72
70
|
( { icon, name, render } ) => {
|
|
73
71
|
return {
|
|
74
72
|
Plugin: render,
|
|
@@ -110,7 +108,7 @@ class PluginArea extends Component {
|
|
|
110
108
|
render() {
|
|
111
109
|
return (
|
|
112
110
|
<div style={ { display: 'none' } }>
|
|
113
|
-
{
|
|
111
|
+
{ this.state.plugins.map( ( { context, Plugin } ) => (
|
|
114
112
|
<PluginContextProvider
|
|
115
113
|
key={ context.name }
|
|
116
114
|
value={ context }
|