From 562a4145e37c9dd7e0cc0cf1dbbd235efbe644a4 Mon Sep 17 00:00:00 2001 From: Daniel Dudzic Date: Mon, 11 Apr 2022 13:33:46 +0200 Subject: [PATCH] Remove the ToggleButtonControl in favor of ToggleGroupControl (#5967) * Remove the ToggleButtonControl in favor of ToggleGroupControl * Remove ESLint errors. Use experimental feature as this is low risk * Fix the 'Expected preceding comment block' ESLint error Co-authored-by: Luigi Teschio --- .../blocks/product-elements/image/edit.js | 95 +++++++++--------- assets/js/blocks/active-filters/edit.js | 47 +++++---- assets/js/blocks/attribute-filter/edit.js | 86 ++++++++-------- assets/js/blocks/price-filter/edit.js | 50 ++++----- assets/js/blocks/product-categories/block.js | 42 ++++---- assets/js/blocks/reviews/edit-utils.js | 44 ++++---- .../toggle-button-control/README.md | 72 ------------- .../toggle-button-control/index.js | 92 ----------------- .../toggle-button-control/screenshot.png | Bin 32893 -> 0 bytes .../toggle-button-control/style.scss | 13 --- 10 files changed, 189 insertions(+), 352 deletions(-) delete mode 100644 assets/js/editor-components/toggle-button-control/README.md delete mode 100644 assets/js/editor-components/toggle-button-control/index.js delete mode 100644 assets/js/editor-components/toggle-button-control/screenshot.png delete mode 100644 assets/js/editor-components/toggle-button-control/style.scss diff --git a/assets/js/atomic/blocks/product-elements/image/edit.js b/assets/js/atomic/blocks/product-elements/image/edit.js index 1cbd5271249..d1a49967610 100644 --- a/assets/js/atomic/blocks/product-elements/image/edit.js +++ b/assets/js/atomic/blocks/product-elements/image/edit.js @@ -2,11 +2,18 @@ * External dependencies */ import { __ } from '@wordpress/i18n'; -import { Disabled, PanelBody, ToggleControl } from '@wordpress/components'; import { InspectorControls, useBlockProps } from '@wordpress/block-editor'; import { createInterpolateElement } from '@wordpress/element'; -import ToggleButtonControl from '@woocommerce/editor-components/toggle-button-control'; import { getAdminLink } from '@woocommerce/settings'; +import { + Disabled, + PanelBody, + ToggleControl, + // eslint-disable-next-line @wordpress/no-unsafe-wp-apis + __experimentalToggleGroupControl as ToggleGroupControl, + // eslint-disable-next-line @wordpress/no-unsafe-wp-apis + __experimentalToggleGroupControlOption as ToggleGroupControlOption, +} from '@wordpress/components'; /** * Internal dependencies @@ -64,41 +71,40 @@ const Edit = ( { attributes, setAttributes } ) => { } /> { showSaleBadge && ( - setAttributes( { saleBadgeAlign: value } ) } - /> + > + + + + ) } - { } ) } value={ imageSizing } - options={ [ - { - label: __( - 'Full Size', - 'woo-gutenberg-products-block' - ), - value: 'full-size', - }, - { - label: __( - 'Cropped', - 'woo-gutenberg-products-block' - ), - value: 'cropped', - }, - ] } onChange={ ( value ) => setAttributes( { imageSizing: value } ) } - /> + > + + + diff --git a/assets/js/blocks/active-filters/edit.js b/assets/js/blocks/active-filters/edit.js index 68b5c1449de..848d8e77a68 100644 --- a/assets/js/blocks/active-filters/edit.js +++ b/assets/js/blocks/active-filters/edit.js @@ -3,10 +3,17 @@ */ import { __ } from '@wordpress/i18n'; import { InspectorControls, useBlockProps } from '@wordpress/block-editor'; -import { Disabled, PanelBody, withSpokenMessages } from '@wordpress/components'; import HeadingToolbar from '@woocommerce/editor-components/heading-toolbar'; import BlockTitle from '@woocommerce/editor-components/block-title'; -import ToggleButtonControl from '@woocommerce/editor-components/toggle-button-control'; +import { + Disabled, + PanelBody, + withSpokenMessages, + // eslint-disable-next-line @wordpress/no-unsafe-wp-apis + __experimentalToggleGroupControl as ToggleGroupControl, + // eslint-disable-next-line @wordpress/no-unsafe-wp-apis + __experimentalToggleGroupControlOption as ToggleGroupControlOption, +} from '@wordpress/components'; /** * Internal dependencies @@ -29,35 +36,33 @@ const Edit = ( { attributes, setAttributes } ) => { 'woo-gutenberg-products-block' ) } > - setAttributes( { displayStyle: value, } ) } - /> + > + + +

{ __( 'Heading Level', diff --git a/assets/js/blocks/attribute-filter/edit.js b/assets/js/blocks/attribute-filter/edit.js index 3714204106e..273627fe963 100644 --- a/assets/js/blocks/attribute-filter/edit.js +++ b/assets/js/blocks/attribute-filter/edit.js @@ -8,6 +8,13 @@ import { BlockControls, useBlockProps, } from '@wordpress/block-editor'; +import { Icon, category, external } from '@wordpress/icons'; +import { SearchListControl } from '@woocommerce/editor-components/search-list-control'; +import { mapValues, toArray, sortBy } from 'lodash'; +import { getAdminLink, getSetting } from '@woocommerce/settings'; +import HeadingToolbar from '@woocommerce/editor-components/heading-toolbar'; +import BlockTitle from '@woocommerce/editor-components/block-title'; +import classnames from 'classnames'; import { Placeholder, Disabled, @@ -16,15 +23,11 @@ import { Button, ToolbarGroup, withSpokenMessages, + // eslint-disable-next-line @wordpress/no-unsafe-wp-apis + __experimentalToggleGroupControl as ToggleGroupControl, + // eslint-disable-next-line @wordpress/no-unsafe-wp-apis + __experimentalToggleGroupControlOption as ToggleGroupControlOption, } from '@wordpress/components'; -import { Icon, category, external } from '@wordpress/icons'; -import { SearchListControl } from '@woocommerce/editor-components/search-list-control'; -import { mapValues, toArray, sortBy } from 'lodash'; -import { getAdminLink, getSetting } from '@woocommerce/settings'; -import HeadingToolbar from '@woocommerce/editor-components/heading-toolbar'; -import BlockTitle from '@woocommerce/editor-components/block-title'; -import ToggleButtonControl from '@woocommerce/editor-components/toggle-button-control'; -import classnames from 'classnames'; /** * Internal dependencies @@ -121,7 +124,7 @@ const Edit = ( { attributes, setAttributes, debouncedSpeak } ) => { 'woo-gutenberg-products-block' ) } > - { ) } value={ queryType } - options={ [ - { - label: __( - 'And', - 'woo-gutenberg-products-block' - ), - value: 'and', - }, - { - label: __( - 'Or', - 'woo-gutenberg-products-block' - ), - value: 'or', - }, - ] } onChange={ ( value ) => setAttributes( { queryType: value, } ) } - /> - + + + + setAttributes( { displayStyle: value, } ) } - /> + > + + + - setAttributes( { showInputFields: value === 'editable', } ) } - /> + > + + + ( { ) } initialOpen > - setAttributes( { isDropdown: value === 'dropdown', } ) } - /> + > + + + ( @@ -106,32 +109,31 @@ export const getSharedReviewContentControls = ( attributes, setAttributes ) => { /> { attributes.showReviewImage && ( <> - setAttributes( { imageType: value } ) } - /> + > + + + { attributes.imageType === 'reviewer' && ! showAvatars && ( setAttributes( { isDropdown: 'dropdown' === value } ) } - /> -) ); -``` - -## Props - -The component accepts the following props: - -### label - -If this property is added, a label will be generated using label property as the content. - -- Type: `String` -- Required: No - -### help - -If this property is added, a help text will be generated using help property as the content. - -- Type: `String|WPElement` -- Required: No - -### value - -If value is passed, one of the options will have pressed state. -If no value is passed no button will have pressed state. - -- Type: `String` -- Required: No - -### onChange - -A function that receives the selected value (string) as input. - -- Type: `function` -- Required: Yes - -### className - -The class that will be added with `components-base-control` and `components-toggle-button-control` to the classes of the wrapper div. If no className is passed only `components-base-control` and `components-toggle-button-control` are used. - -Type: String -Required: No - -#### options - -An array of objects containing the following properties: -- `label`: (string) The label to be shown to the user. -- `value`: (Object) The internal value used to choose the selected value. This is also the value passed to onChange when the option is selected. - -Type: `Array` -Required: No diff --git a/assets/js/editor-components/toggle-button-control/index.js b/assets/js/editor-components/toggle-button-control/index.js deleted file mode 100644 index 5f729ef230a..00000000000 --- a/assets/js/editor-components/toggle-button-control/index.js +++ /dev/null @@ -1,92 +0,0 @@ -/** - * External dependencies - */ -import classnames from 'classnames'; -import { BaseControl, ButtonGroup, Button } from '@wordpress/components'; -import { Component } from '@wordpress/element'; -import { withInstanceId } from '@wordpress/compose'; - -/** - * Internal dependencies - */ -import './style.scss'; - -class ToggleButtonControl extends Component { - constructor() { - super( ...arguments ); - - this.onClick = this.onClick.bind( this ); - } - - onClick( event ) { - if ( this.props.onChange ) { - this.props.onChange( event.target.value ); - } - } - - render() { - const { - label, - checked, - instanceId, - className, - help, - options, - value, - } = this.props; - const id = `inspector-toggle-button-control-${ instanceId }`; - - let helpLabel; - - if ( help ) { - helpLabel = typeof help === 'function' ? help( checked ) : help; - } - - return ( - - - - { options.map( ( option, index ) => { - const buttonArgs = {}; - - // Change button depending on pressed state. - if ( value === option.value ) { - buttonArgs.isPrimary = true; - buttonArgs[ 'aria-pressed' ] = true; - } else { - buttonArgs.isSecondary = true; - buttonArgs[ 'aria-pressed' ] = false; - } - - return ( - - ); - } ) } - - - ); - } -} - -export default withInstanceId( ToggleButtonControl ); diff --git a/assets/js/editor-components/toggle-button-control/screenshot.png b/assets/js/editor-components/toggle-button-control/screenshot.png deleted file mode 100644 index 8f22082ebd0786bc97e9481266c19bc6d824c12d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32893 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