From aeaf0a824d188d183205d85d92ad66defd1c2d26 Mon Sep 17 00:00:00 2001 From: andrei draganescu Date: Fri, 27 Sep 2019 18:57:28 +0300 Subject: [PATCH] Fixes the checkbox appearance (#17571) * Fixes the checkbox appearance * using checkbox control * fixing issues found by review * fix for e2e * fix test selector * fix test selector pretty please * fix test o' c'mon! --- packages/e2e-tests/specs/taxonomies.test.js | 10 ++++------ .../hierarchical-term-selector.js | 19 ++++++++----------- .../src/components/post-taxonomies/style.scss | 4 ---- 3 files changed, 12 insertions(+), 21 deletions(-) diff --git a/packages/e2e-tests/specs/taxonomies.test.js b/packages/e2e-tests/specs/taxonomies.test.js index 1c88fa690be961..791fd79b12f8d4 100644 --- a/packages/e2e-tests/specs/taxonomies.test.js +++ b/packages/e2e-tests/specs/taxonomies.test.js @@ -31,11 +31,9 @@ describe( 'Taxonomies', () => { return page.evaluate( () => { return Array.from( document.querySelectorAll( - '.editor-post-taxonomies__hierarchical-terms-input:checked' + '.editor-post-taxonomies__hierarchical-terms-choice .components-checkbox-control__input:checked' ) ).map( ( node ) => { - return node.parentElement.querySelector( - 'label' - ).innerText; + return node.parentElement.nextSibling.innerText; } ); } ); @@ -83,7 +81,7 @@ describe( 'Taxonomies', () => { await page.click( '.editor-post-taxonomies__hierarchical-terms-submit' ); // Wait for the categories to load. - await page.waitForSelector( '.editor-post-taxonomies__hierarchical-terms-input:checked' ); + await page.waitForSelector( '.editor-post-taxonomies__hierarchical-terms-choice .components-checkbox-control__input:checked' ); let selectedCategories = await getSelectCategories(); @@ -101,7 +99,7 @@ describe( 'Taxonomies', () => { await page.reload(); // Wait for the categories to load. - await page.waitForSelector( '.editor-post-taxonomies__hierarchical-terms-input:checked' ); + await page.waitForSelector( '.editor-post-taxonomies__hierarchical-terms-choice .components-checkbox-control__input:checked' ); selectedCategories = await getSelectCategories(); diff --git a/packages/editor/src/components/post-taxonomies/hierarchical-term-selector.js b/packages/editor/src/components/post-taxonomies/hierarchical-term-selector.js index 9c2405be98cbd3..b3e4bbe15cae80 100644 --- a/packages/editor/src/components/post-taxonomies/hierarchical-term-selector.js +++ b/packages/editor/src/components/post-taxonomies/hierarchical-term-selector.js @@ -8,7 +8,7 @@ import { get, unescape as unescapeString, without, find, some, invoke } from 'lo */ import { __, _x, _n, sprintf } from '@wordpress/i18n'; import { Component } from '@wordpress/element'; -import { TreeSelect, withSpokenMessages, withFilters, Button } from '@wordpress/components'; +import { CheckboxControl, TreeSelect, withSpokenMessages, withFilters, Button } from '@wordpress/components'; import { withSelect, withDispatch } from '@wordpress/data'; import { withInstanceId, compose } from '@wordpress/compose'; import apiFetch from '@wordpress/api-fetch'; @@ -55,9 +55,8 @@ class HierarchicalTermSelector extends Component { }; } - onChange( event ) { + onChange( termId ) { const { onUpdateTerms, terms = [], taxonomy } = this.props; - const termId = parseInt( event.target.value, 10 ); const hasTerm = terms.indexOf( termId ) !== -1; const newTerms = hasTerm ? without( terms, termId ) : @@ -316,18 +315,16 @@ class HierarchicalTermSelector extends Component { renderTerms( renderedTerms ) { const { terms = [] } = this.props; return renderedTerms.map( ( term ) => { - const id = `editor-post-taxonomies-hierarchical-term-${ term.id }`; return (
- { + const termId = parseInt( term.id, 10 ); + this.onChange( termId ); + } } + label={ unescapeString( term.name ) } /> - { !! term.children.length && (
{ this.renderTerms( term.children ) } diff --git a/packages/editor/src/components/post-taxonomies/style.scss b/packages/editor/src/components/post-taxonomies/style.scss index 3e4f5fa263f4f3..5d9887cb742e14 100644 --- a/packages/editor/src/components/post-taxonomies/style.scss +++ b/packages/editor/src/components/post-taxonomies/style.scss @@ -10,10 +10,6 @@ margin-bottom: 8px; } -.editor-post-taxonomies__hierarchical-terms-input[type="checkbox"] { - margin-top: 0; -} - .editor-post-taxonomies__hierarchical-terms-subchoices { margin-top: 8px; margin-left: $panel-padding;