From 8bcf6bda2979ee76f982b79b4fd99f734b7d2a24 Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Tue, 3 Nov 2020 19:24:57 -0500 Subject: [PATCH 1/4] Hide AMP Noloading toggle if block does not have specified setting --- assets/src/block-editor/helpers/index.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/assets/src/block-editor/helpers/index.js b/assets/src/block-editor/helpers/index.js index 13286b59676..914b2c36150 100644 --- a/assets/src/block-editor/helpers/index.js +++ b/assets/src/block-editor/helpers/index.js @@ -418,6 +418,10 @@ AmpLayoutControl.propTypes = { const AmpNoloadingToggle = ( props ) => { const { attributes: { ampNoLoading }, setAttributes } = props; + if ( ! ampNoLoading ) { + return null; + } + const label = __( 'AMP Noloading', 'amp' ); return ( From e68f9d58aac135afdba871201037183393527f30 Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Tue, 3 Nov 2020 19:30:50 -0500 Subject: [PATCH 2/4] Add 'deprecated' annotation to docblock --- assets/src/block-editor/helpers/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/assets/src/block-editor/helpers/index.js b/assets/src/block-editor/helpers/index.js index 914b2c36150..a673ae706cc 100644 --- a/assets/src/block-editor/helpers/index.js +++ b/assets/src/block-editor/helpers/index.js @@ -411,6 +411,8 @@ AmpLayoutControl.propTypes = { /** * Get AMP Noloading toggle control. * + * @deprecated As of v2.1. Blocks with the `ampNoLoading` attribute will still be able to use the control. + * * @param {Object} props Props. * * @return {ReactElement} Element. From b3909733647e9e8a0096bf9e39816b81e94667f0 Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Fri, 11 Dec 2020 04:06:00 -0500 Subject: [PATCH 3/4] Test AmpNoloadingToggle --- assets/src/block-editor/helpers/index.js | 4 +- .../helpers/test/AmpNoloadingToggle.js | 46 +++++++++++++++++++ 2 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 assets/src/block-editor/helpers/test/AmpNoloadingToggle.js diff --git a/assets/src/block-editor/helpers/index.js b/assets/src/block-editor/helpers/index.js index a673ae706cc..a737d53890f 100644 --- a/assets/src/block-editor/helpers/index.js +++ b/assets/src/block-editor/helpers/index.js @@ -417,10 +417,10 @@ AmpLayoutControl.propTypes = { * * @return {ReactElement} Element. */ -const AmpNoloadingToggle = ( props ) => { +export const AmpNoloadingToggle = ( props ) => { const { attributes: { ampNoLoading }, setAttributes } = props; - if ( ! ampNoLoading ) { + if ( undefined === ampNoLoading ) { return null; } diff --git a/assets/src/block-editor/helpers/test/AmpNoloadingToggle.js b/assets/src/block-editor/helpers/test/AmpNoloadingToggle.js new file mode 100644 index 00000000000..b159717ed2a --- /dev/null +++ b/assets/src/block-editor/helpers/test/AmpNoloadingToggle.js @@ -0,0 +1,46 @@ +/** + * External dependencies + */ +import { act } from 'react-dom/test-utils'; + +/** + * WordPress dependencies + */ +import { render } from '@wordpress/element'; + +/** + * Internal dependencies + */ +import { AmpNoloadingToggle } from '../'; + +let container; + +describe( 'AmpNoloadingToggle', () => { + beforeEach( () => { + container = document.createElement( 'div' ); + document.body.appendChild( container ); + } ); + + afterEach( () => { + document.body.removeChild( container ); + container = null; + } ); + + it( 'should not render if ampNoLoading is undefined', function() { + act( () => { + render( {} } attributes={ {} } />, container ); + } ); + + const selectControl = container.querySelector( 'input' ); + expect( selectControl ).toBeNull(); + } ); + + it( 'should render if ampNoLoading is defined', function() { + act( () => { + render( {} } attributes={ { ampNoLoading: true } } />, container ); + } ); + + const selectControl = container.querySelector( 'input' ); + expect( selectControl ).not.toBeNull(); + } ); +} ); From d8a4e0cc238821d790c6e5c2c2c292e9bfb8ca3b Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Sat, 12 Dec 2020 20:45:56 -0500 Subject: [PATCH 4/4] Add a warning notice to setting --- assets/src/block-editor/helpers/index.js | 27 ++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/assets/src/block-editor/helpers/index.js b/assets/src/block-editor/helpers/index.js index a737d53890f..79c2ca39ab9 100644 --- a/assets/src/block-editor/helpers/index.js +++ b/assets/src/block-editor/helpers/index.js @@ -7,7 +7,7 @@ import { ReactElement } from 'react'; /** * WordPress dependencies */ -import { __, _x } from '@wordpress/i18n'; +import { __, _x, sprintf } from '@wordpress/i18n'; import { cloneElement } from '@wordpress/element'; import { TextControl, SelectControl, ToggleControl, Notice, PanelBody, FontSizePicker } from '@wordpress/components'; import { InspectorControls } from '@wordpress/block-editor'; @@ -427,11 +427,26 @@ export const AmpNoloadingToggle = ( props ) => { const label = __( 'AMP Noloading', 'amp' ); return ( - setAttributes( { ampNoLoading: ! ampNoLoading } ) } - /> + <> + + report if you need it.', 'amp' ), + 'https://wordpress.org/support/plugin/amp/#new-topic-0', + ), + } } /> + + + setAttributes( { ampNoLoading: ! ampNoLoading } ) } + /> + ); };