diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-09-19 04:51:18 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-09-19 04:51:18 +0000 |
commit | 0e41b5d52fdc6af6442816b5f465c9db9f84e126 (patch) | |
tree | e139a90049b158d4eed892d1662ee7f5c358fa31 /wp-includes/js/dist/server-side-render.js | |
parent | Adding upstream version 6.5.5+dfsg1. (diff) | |
download | wordpress-upstream.tar.xz wordpress-upstream.zip |
Adding upstream version 6.6.1+dfsg1.upstream/6.6.1+dfsg1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'wp-includes/js/dist/server-side-render.js')
-rw-r--r-- | wp-includes/js/dist/server-side-render.js | 113 |
1 files changed, 59 insertions, 54 deletions
diff --git a/wp-includes/js/dist/server-side-render.js b/wp-includes/js/dist/server-side-render.js index d17f267..a764dc7 100644 --- a/wp-includes/js/dist/server-side-render.js +++ b/wp-includes/js/dist/server-side-render.js @@ -147,8 +147,6 @@ __webpack_require__.d(__webpack_exports__, { "default": () => (/* binding */ build_module) }); -;// CONCATENATED MODULE: external "React" -const external_React_namespaceObject = window["React"]; ;// CONCATENATED MODULE: external ["wp","element"] const external_wp_element_namespaceObject = window["wp"]["element"]; ;// CONCATENATED MODULE: external ["wp","data"] @@ -169,8 +167,9 @@ const external_wp_url_namespaceObject = window["wp"]["url"]; const external_wp_components_namespaceObject = window["wp"]["components"]; ;// CONCATENATED MODULE: external ["wp","blocks"] const external_wp_blocks_namespaceObject = window["wp"]["blocks"]; +;// CONCATENATED MODULE: external "ReactJSXRuntime" +const external_ReactJSXRuntime_namespaceObject = window["ReactJSXRuntime"]; ;// CONCATENATED MODULE: ./node_modules/@wordpress/server-side-render/build-module/server-side-render.js - /** * External dependencies */ @@ -186,6 +185,8 @@ const external_wp_blocks_namespaceObject = window["wp"]["blocks"]; + + const EMPTY_OBJECT = {}; function rendererPath(block, attributes = null, urlQueryArgs = {}) { return (0,external_wp_url_namespaceObject.addQueryArgs)(`/wp/v2/block-renderer/${block}`, { @@ -223,9 +224,10 @@ function removeBlockSupportAttributes(attributes) { function DefaultEmptyResponsePlaceholder({ className }) { - return (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { - className: className - }, (0,external_wp_i18n_namespaceObject.__)('Block rendered as empty.')); + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, { + className: className, + children: (0,external_wp_i18n_namespaceObject.__)('Block rendered as empty.') + }); } function DefaultErrorResponsePlaceholder({ response, @@ -234,31 +236,35 @@ function DefaultErrorResponsePlaceholder({ const errorMessage = (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: error message describing the problem (0,external_wp_i18n_namespaceObject.__)('Error loading block: %s'), response.errorMsg); - return (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { - className: className - }, errorMessage); + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, { + className: className, + children: errorMessage + }); } function DefaultLoadingResponsePlaceholder({ children, showLoader }) { - return (0,external_React_namespaceObject.createElement)("div", { + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", { style: { position: 'relative' - } - }, showLoader && (0,external_React_namespaceObject.createElement)("div", { - style: { - position: 'absolute', - top: '50%', - left: '50%', - marginTop: '-9px', - marginLeft: '-9px' - } - }, (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)), (0,external_React_namespaceObject.createElement)("div", { - style: { - opacity: showLoader ? '0.3' : 1 - } - }, children)); + }, + children: [showLoader && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", { + style: { + position: 'absolute', + top: '50%', + left: '50%', + marginTop: '-9px', + marginLeft: '-9px' + }, + children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}) + }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", { + style: { + opacity: showLoader ? '0.3' : 1 + }, + children: children + })] + }); } function ServerSideRender(props) { const { @@ -272,7 +278,7 @@ function ServerSideRender(props) { ErrorResponsePlaceholder = DefaultErrorResponsePlaceholder, LoadingResponsePlaceholder = DefaultLoadingResponsePlaceholder } = props; - const isMountedRef = (0,external_wp_element_namespaceObject.useRef)(true); + const isMountedRef = (0,external_wp_element_namespaceObject.useRef)(false); const [showLoader, setShowLoader] = (0,external_wp_element_namespaceObject.useState)(false); const fetchRequestRef = (0,external_wp_element_namespaceObject.useRef)(); const [response, setResponse] = (0,external_wp_element_namespaceObject.useState)(null); @@ -284,6 +290,11 @@ function ServerSideRender(props) { return; } setIsLoading(true); + + // Schedule showing the Spinner after 1 second. + const timeout = setTimeout(() => { + setShowLoader(true); + }, 1000); let sanitizedAttributes = attributes && (0,external_wp_blocks_namespaceObject.__experimentalSanitizeBlockAttributes)(block, attributes); if (skipBlockSupportAttributes) { sanitizedAttributes = removeBlockSupportAttributes(sanitizedAttributes); @@ -318,6 +329,9 @@ function ServerSideRender(props) { }).finally(() => { if (isMountedRef.current && fetchRequest === fetchRequestRef.current) { setIsLoading(false); + // Cancel the timeout to show the Spinner. + setShowLoader(false); + clearTimeout(timeout); } }); return fetchRequest; @@ -326,8 +340,11 @@ function ServerSideRender(props) { // When the component unmounts, set isMountedRef to false. This will // let the async fetch callbacks know when to stop. - (0,external_wp_element_namespaceObject.useEffect)(() => () => { - isMountedRef.current = false; + (0,external_wp_element_namespaceObject.useEffect)(() => { + isMountedRef.current = true; + return () => { + isMountedRef.current = false; + }; }, []); (0,external_wp_element_namespaceObject.useEffect)(() => { // Don't debounce the first fetch. This ensures that the first render @@ -338,50 +355,37 @@ function ServerSideRender(props) { debouncedFetchData(); } }); - - /** - * Effect to handle showing the loading placeholder. - * Show it only if there is no previous response or - * the request takes more than one second. - */ - (0,external_wp_element_namespaceObject.useEffect)(() => { - if (!isLoading) { - return; - } - const timeout = setTimeout(() => { - setShowLoader(true); - }, 1000); - return () => clearTimeout(timeout); - }, [isLoading]); const hasResponse = !!response; const hasEmptyResponse = response === ''; const hasError = response?.error; if (isLoading) { - return (0,external_React_namespaceObject.createElement)(LoadingResponsePlaceholder, { + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LoadingResponsePlaceholder, { ...props, - showLoader: showLoader - }, hasResponse && (0,external_React_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, { - className: className - }, response)); + showLoader: showLoader, + children: hasResponse && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, { + className: className, + children: response + }) + }); } if (hasEmptyResponse || !hasResponse) { - return (0,external_React_namespaceObject.createElement)(EmptyResponsePlaceholder, { + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EmptyResponsePlaceholder, { ...props }); } if (hasError) { - return (0,external_React_namespaceObject.createElement)(ErrorResponsePlaceholder, { + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ErrorResponsePlaceholder, { response: response, ...props }); } - return (0,external_React_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, { - className: className - }, response); + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, { + className: className, + children: response + }); } ;// CONCATENATED MODULE: ./node_modules/@wordpress/server-side-render/build-module/index.js - /** * WordPress dependencies */ @@ -396,6 +400,7 @@ function ServerSideRender(props) { /** * Constants */ + const build_module_EMPTY_OBJECT = {}; const ExportedServerSideRender = (0,external_wp_data_namespaceObject.withSelect)(select => { // FIXME: @wordpress/server-side-render should not depend on @wordpress/editor. @@ -429,7 +434,7 @@ const ExportedServerSideRender = (0,external_wp_data_namespaceObject.withSelect) ...urlQueryArgs }; }, [currentPostId, urlQueryArgs]); - return (0,external_React_namespaceObject.createElement)(ServerSideRender, { + return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ServerSideRender, { urlQueryArgs: newUrlQueryArgs, ...props }); |