@wordpress/server-side-render 1.20.8-next.645224df70.0 → 1.20.10

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.
@@ -34,8 +34,6 @@ var _url = require("@wordpress/url");
34
34
 
35
35
  var _components = require("@wordpress/components");
36
36
 
37
- var _blocks = require("@wordpress/blocks");
38
-
39
37
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
40
38
 
41
39
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
@@ -112,15 +110,14 @@ var ServerSideRender = /*#__PURE__*/function (_Component) {
112
110
  _props$httpMethod = props.httpMethod,
113
111
  httpMethod = _props$httpMethod === void 0 ? 'GET' : _props$httpMethod,
114
112
  _props$urlQueryArgs = props.urlQueryArgs,
115
- urlQueryArgs = _props$urlQueryArgs === void 0 ? {} : _props$urlQueryArgs;
116
- var sanitizedAttributes = attributes && (0, _blocks.__experimentalSanitizeBlockAttributes)(block, attributes); // If httpMethod is 'POST', send the attributes in the request body instead of the URL.
113
+ urlQueryArgs = _props$urlQueryArgs === void 0 ? {} : _props$urlQueryArgs; // If httpMethod is 'POST', send the attributes in the request body instead of the URL.
117
114
  // This allows sending a larger attributes object than in a GET request, where the attributes are in the URL.
118
115
 
119
116
  var isPostRequest = 'POST' === httpMethod;
120
- var urlAttributes = isPostRequest ? null : sanitizedAttributes;
117
+ var urlAttributes = isPostRequest ? null : attributes;
121
118
  var path = rendererPath(block, urlAttributes, urlQueryArgs);
122
119
  var data = isPostRequest ? {
123
- attributes: sanitizedAttributes
120
+ attributes: attributes
124
121
  } : null; // Store the latest fetch request so that when we process it, we can
125
122
  // check if it is the current request, to avoid race conditions on slow networks.
126
123
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/server-side-render/src/server-side-render.js"],"names":["rendererPath","block","attributes","urlQueryArgs","context","ServerSideRender","props","state","response","isStillMounted","fetch","prevProps","setState","httpMethod","sanitizedAttributes","isPostRequest","urlAttributes","path","data","fetchRequest","currentFetchRequest","method","then","rendered","catch","error","errorMsg","message","className","EmptyResponsePlaceholder","ErrorResponsePlaceholder","LoadingResponsePlaceholder","Component","defaultProps","errorMessage"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEqual, debounce } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, RawHTML } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Placeholder, Spinner } from '@wordpress/components';\nimport { __experimentalSanitizeBlockAttributes } from '@wordpress/blocks';\n\nexport function rendererPath( block, attributes = null, urlQueryArgs = {} ) {\n\treturn addQueryArgs( `/wp/v2/block-renderer/${ block }`, {\n\t\tcontext: 'edit',\n\t\t...( null !== attributes ? { attributes } : {} ),\n\t\t...urlQueryArgs,\n\t} );\n}\n\nexport class ServerSideRender extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.state = {\n\t\t\tresponse: null,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.isStillMounted = true;\n\t\tthis.fetch( this.props );\n\t\t// Only debounce once the initial fetch occurs to ensure that the first\n\t\t// renders show data as soon as possible.\n\t\tthis.fetch = debounce( this.fetch, 500 );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.isStillMounted = false;\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( ! isEqual( prevProps, this.props ) ) {\n\t\t\tthis.fetch( this.props );\n\t\t}\n\t}\n\n\tfetch( props ) {\n\t\tif ( ! this.isStillMounted ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( null !== this.state.response ) {\n\t\t\tthis.setState( { response: null } );\n\t\t}\n\t\tconst {\n\t\t\tblock,\n\t\t\tattributes = null,\n\t\t\thttpMethod = 'GET',\n\t\t\turlQueryArgs = {},\n\t\t} = props;\n\n\t\tconst sanitizedAttributes =\n\t\t\tattributes &&\n\t\t\t__experimentalSanitizeBlockAttributes( block, attributes );\n\n\t\t// If httpMethod is 'POST', send the attributes in the request body instead of the URL.\n\t\t// This allows sending a larger attributes object than in a GET request, where the attributes are in the URL.\n\t\tconst isPostRequest = 'POST' === httpMethod;\n\t\tconst urlAttributes = isPostRequest ? null : sanitizedAttributes;\n\t\tconst path = rendererPath( block, urlAttributes, urlQueryArgs );\n\t\tconst data = isPostRequest ? { attributes: sanitizedAttributes } : null;\n\n\t\t// Store the latest fetch request so that when we process it, we can\n\t\t// check if it is the current request, to avoid race conditions on slow networks.\n\t\tconst fetchRequest = ( this.currentFetchRequest = apiFetch( {\n\t\t\tpath,\n\t\t\tdata,\n\t\t\tmethod: isPostRequest ? 'POST' : 'GET',\n\t\t} )\n\t\t\t.then( ( response ) => {\n\t\t\t\tif (\n\t\t\t\t\tthis.isStillMounted &&\n\t\t\t\t\tfetchRequest === this.currentFetchRequest &&\n\t\t\t\t\tresponse\n\t\t\t\t) {\n\t\t\t\t\tthis.setState( { response: response.rendered } );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tif (\n\t\t\t\t\tthis.isStillMounted &&\n\t\t\t\t\tfetchRequest === this.currentFetchRequest\n\t\t\t\t) {\n\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\terrorMsg: error.message,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} ) );\n\t\treturn fetchRequest;\n\t}\n\n\trender() {\n\t\tconst response = this.state.response;\n\t\tconst {\n\t\t\tclassName,\n\t\t\tEmptyResponsePlaceholder,\n\t\t\tErrorResponsePlaceholder,\n\t\t\tLoadingResponsePlaceholder,\n\t\t} = this.props;\n\n\t\tif ( response === '' ) {\n\t\t\treturn (\n\t\t\t\t<EmptyResponsePlaceholder\n\t\t\t\t\tresponse={ response }\n\t\t\t\t\t{ ...this.props }\n\t\t\t\t/>\n\t\t\t);\n\t\t} else if ( ! response ) {\n\t\t\treturn (\n\t\t\t\t<LoadingResponsePlaceholder\n\t\t\t\t\tresponse={ response }\n\t\t\t\t\t{ ...this.props }\n\t\t\t\t/>\n\t\t\t);\n\t\t} else if ( response.error ) {\n\t\t\treturn (\n\t\t\t\t<ErrorResponsePlaceholder\n\t\t\t\t\tresponse={ response }\n\t\t\t\t\t{ ...this.props }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<RawHTML key=\"html\" className={ className }>\n\t\t\t\t{ response }\n\t\t\t</RawHTML>\n\t\t);\n\t}\n}\n\nServerSideRender.defaultProps = {\n\tEmptyResponsePlaceholder: ( { className } ) => (\n\t\t<Placeholder className={ className }>\n\t\t\t{ __( 'Block rendered as empty.' ) }\n\t\t</Placeholder>\n\t),\n\tErrorResponsePlaceholder: ( { response, className } ) => {\n\t\tconst errorMessage = sprintf(\n\t\t\t// translators: %s: error message describing the problem\n\t\t\t__( 'Error loading block: %s' ),\n\t\t\tresponse.errorMsg\n\t\t);\n\t\treturn (\n\t\t\t<Placeholder className={ className }>{ errorMessage }</Placeholder>\n\t\t);\n\t},\n\tLoadingResponsePlaceholder: ( { className } ) => {\n\t\treturn (\n\t\t\t<Placeholder className={ className }>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t},\n};\n\nexport default ServerSideRender;\n"]}
1
+ {"version":3,"sources":["@wordpress/server-side-render/src/server-side-render.js"],"names":["rendererPath","block","attributes","urlQueryArgs","context","ServerSideRender","props","state","response","isStillMounted","fetch","prevProps","setState","httpMethod","isPostRequest","urlAttributes","path","data","fetchRequest","currentFetchRequest","method","then","rendered","catch","error","errorMsg","message","className","EmptyResponsePlaceholder","ErrorResponsePlaceholder","LoadingResponsePlaceholder","Component","defaultProps","errorMessage"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEqual, debounce } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, RawHTML } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Placeholder, Spinner } from '@wordpress/components';\n\nexport function rendererPath( block, attributes = null, urlQueryArgs = {} ) {\n\treturn addQueryArgs( `/wp/v2/block-renderer/${ block }`, {\n\t\tcontext: 'edit',\n\t\t...( null !== attributes ? { attributes } : {} ),\n\t\t...urlQueryArgs,\n\t} );\n}\n\nexport class ServerSideRender extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.state = {\n\t\t\tresponse: null,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.isStillMounted = true;\n\t\tthis.fetch( this.props );\n\t\t// Only debounce once the initial fetch occurs to ensure that the first\n\t\t// renders show data as soon as possible.\n\t\tthis.fetch = debounce( this.fetch, 500 );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.isStillMounted = false;\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( ! isEqual( prevProps, this.props ) ) {\n\t\t\tthis.fetch( this.props );\n\t\t}\n\t}\n\n\tfetch( props ) {\n\t\tif ( ! this.isStillMounted ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( null !== this.state.response ) {\n\t\t\tthis.setState( { response: null } );\n\t\t}\n\t\tconst {\n\t\t\tblock,\n\t\t\tattributes = null,\n\t\t\thttpMethod = 'GET',\n\t\t\turlQueryArgs = {},\n\t\t} = props;\n\n\t\t// If httpMethod is 'POST', send the attributes in the request body instead of the URL.\n\t\t// This allows sending a larger attributes object than in a GET request, where the attributes are in the URL.\n\t\tconst isPostRequest = 'POST' === httpMethod;\n\t\tconst urlAttributes = isPostRequest ? null : attributes;\n\t\tconst path = rendererPath( block, urlAttributes, urlQueryArgs );\n\t\tconst data = isPostRequest ? { attributes } : null;\n\n\t\t// Store the latest fetch request so that when we process it, we can\n\t\t// check if it is the current request, to avoid race conditions on slow networks.\n\t\tconst fetchRequest = ( this.currentFetchRequest = apiFetch( {\n\t\t\tpath,\n\t\t\tdata,\n\t\t\tmethod: isPostRequest ? 'POST' : 'GET',\n\t\t} )\n\t\t\t.then( ( response ) => {\n\t\t\t\tif (\n\t\t\t\t\tthis.isStillMounted &&\n\t\t\t\t\tfetchRequest === this.currentFetchRequest &&\n\t\t\t\t\tresponse\n\t\t\t\t) {\n\t\t\t\t\tthis.setState( { response: response.rendered } );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tif (\n\t\t\t\t\tthis.isStillMounted &&\n\t\t\t\t\tfetchRequest === this.currentFetchRequest\n\t\t\t\t) {\n\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\terrorMsg: error.message,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} ) );\n\t\treturn fetchRequest;\n\t}\n\n\trender() {\n\t\tconst response = this.state.response;\n\t\tconst {\n\t\t\tclassName,\n\t\t\tEmptyResponsePlaceholder,\n\t\t\tErrorResponsePlaceholder,\n\t\t\tLoadingResponsePlaceholder,\n\t\t} = this.props;\n\n\t\tif ( response === '' ) {\n\t\t\treturn (\n\t\t\t\t<EmptyResponsePlaceholder\n\t\t\t\t\tresponse={ response }\n\t\t\t\t\t{ ...this.props }\n\t\t\t\t/>\n\t\t\t);\n\t\t} else if ( ! response ) {\n\t\t\treturn (\n\t\t\t\t<LoadingResponsePlaceholder\n\t\t\t\t\tresponse={ response }\n\t\t\t\t\t{ ...this.props }\n\t\t\t\t/>\n\t\t\t);\n\t\t} else if ( response.error ) {\n\t\t\treturn (\n\t\t\t\t<ErrorResponsePlaceholder\n\t\t\t\t\tresponse={ response }\n\t\t\t\t\t{ ...this.props }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<RawHTML key=\"html\" className={ className }>\n\t\t\t\t{ response }\n\t\t\t</RawHTML>\n\t\t);\n\t}\n}\n\nServerSideRender.defaultProps = {\n\tEmptyResponsePlaceholder: ( { className } ) => (\n\t\t<Placeholder className={ className }>\n\t\t\t{ __( 'Block rendered as empty.' ) }\n\t\t</Placeholder>\n\t),\n\tErrorResponsePlaceholder: ( { response, className } ) => {\n\t\tconst errorMessage = sprintf(\n\t\t\t// translators: %s: error message describing the problem\n\t\t\t__( 'Error loading block: %s' ),\n\t\t\tresponse.errorMsg\n\t\t);\n\t\treturn (\n\t\t\t<Placeholder className={ className }>{ errorMessage }</Placeholder>\n\t\t);\n\t},\n\tLoadingResponsePlaceholder: ( { className } ) => {\n\t\treturn (\n\t\t\t<Placeholder className={ className }>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t},\n};\n\nexport default ServerSideRender;\n"]}
@@ -28,7 +28,6 @@ import { __, sprintf } from '@wordpress/i18n';
28
28
  import apiFetch from '@wordpress/api-fetch';
29
29
  import { addQueryArgs } from '@wordpress/url';
30
30
  import { Placeholder, Spinner } from '@wordpress/components';
31
- import { __experimentalSanitizeBlockAttributes } from '@wordpress/blocks';
32
31
  export function rendererPath(block) {
33
32
  var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
34
33
  var urlQueryArgs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
@@ -97,17 +96,14 @@ export var ServerSideRender = /*#__PURE__*/function (_Component) {
97
96
  _props$httpMethod = props.httpMethod,
98
97
  httpMethod = _props$httpMethod === void 0 ? 'GET' : _props$httpMethod,
99
98
  _props$urlQueryArgs = props.urlQueryArgs,
100
- urlQueryArgs = _props$urlQueryArgs === void 0 ? {} : _props$urlQueryArgs;
101
-
102
- var sanitizedAttributes = attributes && __experimentalSanitizeBlockAttributes(block, attributes); // If httpMethod is 'POST', send the attributes in the request body instead of the URL.
99
+ urlQueryArgs = _props$urlQueryArgs === void 0 ? {} : _props$urlQueryArgs; // If httpMethod is 'POST', send the attributes in the request body instead of the URL.
103
100
  // This allows sending a larger attributes object than in a GET request, where the attributes are in the URL.
104
101
 
105
-
106
102
  var isPostRequest = 'POST' === httpMethod;
107
- var urlAttributes = isPostRequest ? null : sanitizedAttributes;
103
+ var urlAttributes = isPostRequest ? null : attributes;
108
104
  var path = rendererPath(block, urlAttributes, urlQueryArgs);
109
105
  var data = isPostRequest ? {
110
- attributes: sanitizedAttributes
106
+ attributes: attributes
111
107
  } : null; // Store the latest fetch request so that when we process it, we can
112
108
  // check if it is the current request, to avoid race conditions on slow networks.
113
109
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/server-side-render/src/server-side-render.js"],"names":["isEqual","debounce","Component","RawHTML","__","sprintf","apiFetch","addQueryArgs","Placeholder","Spinner","__experimentalSanitizeBlockAttributes","rendererPath","block","attributes","urlQueryArgs","context","ServerSideRender","props","state","response","isStillMounted","fetch","prevProps","setState","httpMethod","sanitizedAttributes","isPostRequest","urlAttributes","path","data","fetchRequest","currentFetchRequest","method","then","rendered","catch","error","errorMsg","message","className","EmptyResponsePlaceholder","ErrorResponsePlaceholder","LoadingResponsePlaceholder","defaultProps","errorMessage"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEqual, debounce } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, RawHTML } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Placeholder, Spinner } from '@wordpress/components';\nimport { __experimentalSanitizeBlockAttributes } from '@wordpress/blocks';\n\nexport function rendererPath( block, attributes = null, urlQueryArgs = {} ) {\n\treturn addQueryArgs( `/wp/v2/block-renderer/${ block }`, {\n\t\tcontext: 'edit',\n\t\t...( null !== attributes ? { attributes } : {} ),\n\t\t...urlQueryArgs,\n\t} );\n}\n\nexport class ServerSideRender extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.state = {\n\t\t\tresponse: null,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.isStillMounted = true;\n\t\tthis.fetch( this.props );\n\t\t// Only debounce once the initial fetch occurs to ensure that the first\n\t\t// renders show data as soon as possible.\n\t\tthis.fetch = debounce( this.fetch, 500 );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.isStillMounted = false;\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( ! isEqual( prevProps, this.props ) ) {\n\t\t\tthis.fetch( this.props );\n\t\t}\n\t}\n\n\tfetch( props ) {\n\t\tif ( ! this.isStillMounted ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( null !== this.state.response ) {\n\t\t\tthis.setState( { response: null } );\n\t\t}\n\t\tconst {\n\t\t\tblock,\n\t\t\tattributes = null,\n\t\t\thttpMethod = 'GET',\n\t\t\turlQueryArgs = {},\n\t\t} = props;\n\n\t\tconst sanitizedAttributes =\n\t\t\tattributes &&\n\t\t\t__experimentalSanitizeBlockAttributes( block, attributes );\n\n\t\t// If httpMethod is 'POST', send the attributes in the request body instead of the URL.\n\t\t// This allows sending a larger attributes object than in a GET request, where the attributes are in the URL.\n\t\tconst isPostRequest = 'POST' === httpMethod;\n\t\tconst urlAttributes = isPostRequest ? null : sanitizedAttributes;\n\t\tconst path = rendererPath( block, urlAttributes, urlQueryArgs );\n\t\tconst data = isPostRequest ? { attributes: sanitizedAttributes } : null;\n\n\t\t// Store the latest fetch request so that when we process it, we can\n\t\t// check if it is the current request, to avoid race conditions on slow networks.\n\t\tconst fetchRequest = ( this.currentFetchRequest = apiFetch( {\n\t\t\tpath,\n\t\t\tdata,\n\t\t\tmethod: isPostRequest ? 'POST' : 'GET',\n\t\t} )\n\t\t\t.then( ( response ) => {\n\t\t\t\tif (\n\t\t\t\t\tthis.isStillMounted &&\n\t\t\t\t\tfetchRequest === this.currentFetchRequest &&\n\t\t\t\t\tresponse\n\t\t\t\t) {\n\t\t\t\t\tthis.setState( { response: response.rendered } );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tif (\n\t\t\t\t\tthis.isStillMounted &&\n\t\t\t\t\tfetchRequest === this.currentFetchRequest\n\t\t\t\t) {\n\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\terrorMsg: error.message,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} ) );\n\t\treturn fetchRequest;\n\t}\n\n\trender() {\n\t\tconst response = this.state.response;\n\t\tconst {\n\t\t\tclassName,\n\t\t\tEmptyResponsePlaceholder,\n\t\t\tErrorResponsePlaceholder,\n\t\t\tLoadingResponsePlaceholder,\n\t\t} = this.props;\n\n\t\tif ( response === '' ) {\n\t\t\treturn (\n\t\t\t\t<EmptyResponsePlaceholder\n\t\t\t\t\tresponse={ response }\n\t\t\t\t\t{ ...this.props }\n\t\t\t\t/>\n\t\t\t);\n\t\t} else if ( ! response ) {\n\t\t\treturn (\n\t\t\t\t<LoadingResponsePlaceholder\n\t\t\t\t\tresponse={ response }\n\t\t\t\t\t{ ...this.props }\n\t\t\t\t/>\n\t\t\t);\n\t\t} else if ( response.error ) {\n\t\t\treturn (\n\t\t\t\t<ErrorResponsePlaceholder\n\t\t\t\t\tresponse={ response }\n\t\t\t\t\t{ ...this.props }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<RawHTML key=\"html\" className={ className }>\n\t\t\t\t{ response }\n\t\t\t</RawHTML>\n\t\t);\n\t}\n}\n\nServerSideRender.defaultProps = {\n\tEmptyResponsePlaceholder: ( { className } ) => (\n\t\t<Placeholder className={ className }>\n\t\t\t{ __( 'Block rendered as empty.' ) }\n\t\t</Placeholder>\n\t),\n\tErrorResponsePlaceholder: ( { response, className } ) => {\n\t\tconst errorMessage = sprintf(\n\t\t\t// translators: %s: error message describing the problem\n\t\t\t__( 'Error loading block: %s' ),\n\t\t\tresponse.errorMsg\n\t\t);\n\t\treturn (\n\t\t\t<Placeholder className={ className }>{ errorMessage }</Placeholder>\n\t\t);\n\t},\n\tLoadingResponsePlaceholder: ( { className } ) => {\n\t\treturn (\n\t\t\t<Placeholder className={ className }>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t},\n};\n\nexport default ServerSideRender;\n"]}
1
+ {"version":3,"sources":["@wordpress/server-side-render/src/server-side-render.js"],"names":["isEqual","debounce","Component","RawHTML","__","sprintf","apiFetch","addQueryArgs","Placeholder","Spinner","rendererPath","block","attributes","urlQueryArgs","context","ServerSideRender","props","state","response","isStillMounted","fetch","prevProps","setState","httpMethod","isPostRequest","urlAttributes","path","data","fetchRequest","currentFetchRequest","method","then","rendered","catch","error","errorMsg","message","className","EmptyResponsePlaceholder","ErrorResponsePlaceholder","LoadingResponsePlaceholder","defaultProps","errorMessage"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEqual, debounce } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, RawHTML } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Placeholder, Spinner } from '@wordpress/components';\n\nexport function rendererPath( block, attributes = null, urlQueryArgs = {} ) {\n\treturn addQueryArgs( `/wp/v2/block-renderer/${ block }`, {\n\t\tcontext: 'edit',\n\t\t...( null !== attributes ? { attributes } : {} ),\n\t\t...urlQueryArgs,\n\t} );\n}\n\nexport class ServerSideRender extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.state = {\n\t\t\tresponse: null,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.isStillMounted = true;\n\t\tthis.fetch( this.props );\n\t\t// Only debounce once the initial fetch occurs to ensure that the first\n\t\t// renders show data as soon as possible.\n\t\tthis.fetch = debounce( this.fetch, 500 );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.isStillMounted = false;\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( ! isEqual( prevProps, this.props ) ) {\n\t\t\tthis.fetch( this.props );\n\t\t}\n\t}\n\n\tfetch( props ) {\n\t\tif ( ! this.isStillMounted ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( null !== this.state.response ) {\n\t\t\tthis.setState( { response: null } );\n\t\t}\n\t\tconst {\n\t\t\tblock,\n\t\t\tattributes = null,\n\t\t\thttpMethod = 'GET',\n\t\t\turlQueryArgs = {},\n\t\t} = props;\n\n\t\t// If httpMethod is 'POST', send the attributes in the request body instead of the URL.\n\t\t// This allows sending a larger attributes object than in a GET request, where the attributes are in the URL.\n\t\tconst isPostRequest = 'POST' === httpMethod;\n\t\tconst urlAttributes = isPostRequest ? null : attributes;\n\t\tconst path = rendererPath( block, urlAttributes, urlQueryArgs );\n\t\tconst data = isPostRequest ? { attributes } : null;\n\n\t\t// Store the latest fetch request so that when we process it, we can\n\t\t// check if it is the current request, to avoid race conditions on slow networks.\n\t\tconst fetchRequest = ( this.currentFetchRequest = apiFetch( {\n\t\t\tpath,\n\t\t\tdata,\n\t\t\tmethod: isPostRequest ? 'POST' : 'GET',\n\t\t} )\n\t\t\t.then( ( response ) => {\n\t\t\t\tif (\n\t\t\t\t\tthis.isStillMounted &&\n\t\t\t\t\tfetchRequest === this.currentFetchRequest &&\n\t\t\t\t\tresponse\n\t\t\t\t) {\n\t\t\t\t\tthis.setState( { response: response.rendered } );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tif (\n\t\t\t\t\tthis.isStillMounted &&\n\t\t\t\t\tfetchRequest === this.currentFetchRequest\n\t\t\t\t) {\n\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\terrorMsg: error.message,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} ) );\n\t\treturn fetchRequest;\n\t}\n\n\trender() {\n\t\tconst response = this.state.response;\n\t\tconst {\n\t\t\tclassName,\n\t\t\tEmptyResponsePlaceholder,\n\t\t\tErrorResponsePlaceholder,\n\t\t\tLoadingResponsePlaceholder,\n\t\t} = this.props;\n\n\t\tif ( response === '' ) {\n\t\t\treturn (\n\t\t\t\t<EmptyResponsePlaceholder\n\t\t\t\t\tresponse={ response }\n\t\t\t\t\t{ ...this.props }\n\t\t\t\t/>\n\t\t\t);\n\t\t} else if ( ! response ) {\n\t\t\treturn (\n\t\t\t\t<LoadingResponsePlaceholder\n\t\t\t\t\tresponse={ response }\n\t\t\t\t\t{ ...this.props }\n\t\t\t\t/>\n\t\t\t);\n\t\t} else if ( response.error ) {\n\t\t\treturn (\n\t\t\t\t<ErrorResponsePlaceholder\n\t\t\t\t\tresponse={ response }\n\t\t\t\t\t{ ...this.props }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<RawHTML key=\"html\" className={ className }>\n\t\t\t\t{ response }\n\t\t\t</RawHTML>\n\t\t);\n\t}\n}\n\nServerSideRender.defaultProps = {\n\tEmptyResponsePlaceholder: ( { className } ) => (\n\t\t<Placeholder className={ className }>\n\t\t\t{ __( 'Block rendered as empty.' ) }\n\t\t</Placeholder>\n\t),\n\tErrorResponsePlaceholder: ( { response, className } ) => {\n\t\tconst errorMessage = sprintf(\n\t\t\t// translators: %s: error message describing the problem\n\t\t\t__( 'Error loading block: %s' ),\n\t\t\tresponse.errorMsg\n\t\t);\n\t\treturn (\n\t\t\t<Placeholder className={ className }>{ errorMessage }</Placeholder>\n\t\t);\n\t},\n\tLoadingResponsePlaceholder: ( { className } ) => {\n\t\treturn (\n\t\t\t<Placeholder className={ className }>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t},\n};\n\nexport default ServerSideRender;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/server-side-render",
3
- "version": "1.20.8-next.645224df70.0",
3
+ "version": "1.20.10",
4
4
  "description": "The component used with WordPress to server-side render a preview of dynamic blocks to display in the editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -24,18 +24,17 @@
24
24
  "react-native": "src/index",
25
25
  "dependencies": {
26
26
  "@babel/runtime": "^7.12.5",
27
- "@wordpress/api-fetch": "^3.21.6-next.645224df70.0",
28
- "@wordpress/blocks": "^8.0.1-next.645224df70.0",
29
- "@wordpress/components": "^13.0.1-next.645224df70.0",
30
- "@wordpress/data": "^4.27.1-next.645224df70.0",
31
- "@wordpress/deprecated": "^2.11.2-next.645224df70.0",
32
- "@wordpress/element": "^2.19.2-next.645224df70.0",
33
- "@wordpress/i18n": "^3.19.1-next.645224df70.0",
34
- "@wordpress/url": "^2.21.3-next.645224df70.0",
27
+ "@wordpress/api-fetch": "^3.21.6",
28
+ "@wordpress/components": "^12.0.9",
29
+ "@wordpress/data": "^4.26.9",
30
+ "@wordpress/deprecated": "^2.11.1",
31
+ "@wordpress/element": "^2.19.1",
32
+ "@wordpress/i18n": "^3.18.0",
33
+ "@wordpress/url": "^2.21.3",
35
34
  "lodash": "^4.17.19"
36
35
  },
37
36
  "publishConfig": {
38
37
  "access": "public"
39
38
  },
40
- "gitHead": "c24e259d5c29457b154032d88c83da7e08ad186c"
39
+ "gitHead": "14a64efc7cf32f4d37400902a7c1cbb822bc5c2f"
41
40
  }
@@ -11,7 +11,6 @@ import { __, sprintf } from '@wordpress/i18n';
11
11
  import apiFetch from '@wordpress/api-fetch';
12
12
  import { addQueryArgs } from '@wordpress/url';
13
13
  import { Placeholder, Spinner } from '@wordpress/components';
14
- import { __experimentalSanitizeBlockAttributes } from '@wordpress/blocks';
15
14
 
16
15
  export function rendererPath( block, attributes = null, urlQueryArgs = {} ) {
17
16
  return addQueryArgs( `/wp/v2/block-renderer/${ block }`, {
@@ -61,16 +60,12 @@ export class ServerSideRender extends Component {
61
60
  urlQueryArgs = {},
62
61
  } = props;
63
62
 
64
- const sanitizedAttributes =
65
- attributes &&
66
- __experimentalSanitizeBlockAttributes( block, attributes );
67
-
68
63
  // If httpMethod is 'POST', send the attributes in the request body instead of the URL.
69
64
  // This allows sending a larger attributes object than in a GET request, where the attributes are in the URL.
70
65
  const isPostRequest = 'POST' === httpMethod;
71
- const urlAttributes = isPostRequest ? null : sanitizedAttributes;
66
+ const urlAttributes = isPostRequest ? null : attributes;
72
67
  const path = rendererPath( block, urlAttributes, urlQueryArgs );
73
- const data = isPostRequest ? { attributes: sanitizedAttributes } : null;
68
+ const data = isPostRequest ? { attributes } : null;
74
69
 
75
70
  // Store the latest fetch request so that when we process it, we can
76
71
  // check if it is the current request, to avoid race conditions on slow networks.