Skip to content

Latest commit

 

History

History
63 lines (52 loc) · 1.95 KB

File metadata and controls

63 lines (52 loc) · 1.95 KB

TermSearchControl

The TermSearchControl component allows for live searching the terms in a taxonomy. It is ideal for use with taxonomies with a high number of terms, where returning all of them in a single query is not possible. It wraps a FormTokenField component, and is based off of the taxonomy controls in the Query Loop block.

Usage

To use this component, you need to pass a taxonomy slug and an array of term IDs as termIds to TermSearchControl, as well as an onChange callback that accepts an array of term IDs.

import { TermSearchControl } from '@humanmade/block-editor-components';
import { InspectorControls } from '@wordpress/block-editor';
import { PanelBody } from '@wordpress/components';

/**
 * Block edit view.
 *
 * @param {object} props - Component props.
 * @returns {ReactNode} Component.
 */
const Edit = ( props ) => {
	const { attributes, setAttributes } = props;
	const { tags } = attributes;

	return (
		<InspectorControls>
			<PanelBody>
				<TermSearchControl
					taxonomy="post_tag"
					termIds={ tags }
					onChange={ ( tags ) =>
						setAttributes( { tags } )
					}
				/>
			</PanelBody>
		</InspectorControls>
	);
}

Additionally, you can pass a label to override the default label. The default label displays in the format 'Filter by {taxonomy name}>'.

<TermSearchControl
	label="Override label text"
	taxonomy="post_tag"
	termIds={ tags }
	onChange={ ( tags ) =>
		setAttributes( { tags } )
	}
/>

Dependencies

The TermSearchControl component requires the following dependencies, which are expected to be available:

  • @wordpress/components
  • @wordpress/compose
  • @wordpress/core-data
  • @wordpress/data
  • @wordpress/element
  • @wordpress/html-entities
  • @wordpress/i18n