How to use the @wordpress/hooks.hasFilter function in @wordpress/hooks

To help you get started, we’ve selected a few @wordpress/hooks examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github DefinitelyTyped / DefinitelyTyped / types / wordpress__hooks / wordpress__hooks-tests.ts View on Github external
import * as hooks from '@wordpress/hooks';

hooks.addAction('my-action', 'my/namespace', () => {});
hooks.addAction('my-action', 'my/namespace', () => {}, 20);

hooks.addFilter('my-filter', 'my/namespace', (foo: string, bar: number) => `${foo}${bar}`);
hooks.addFilter('my-filter', 'my/namespace', (foo: number, bar: number) => bar, 23);

hooks.removeAction('my-action', 'my/namespace');
hooks.removeFilter('my-filter', 'my/namespace');

// $ExpectType boolean
hooks.hasAction('my-action');
// $ExpectType boolean
hooks.hasFilter('my-filter');

hooks.removeAllActions('my-action', 'my/namespace');
hooks.removeAllFilters('my-filter', 'my/namespace');

// $ExpectType unknown
hooks.doAction('my-action');
// $ExpectType string
hooks.doAction('my-action', 'foo');

// $ExpectType unknown
hooks.applyFilters('my-filter');
// $ExpectType number
hooks.applyFilters('my-action', 123);
// $ExpectType (string | number)[]
hooks.applyFilters('my-action', [123, '456']);
github WordPress / gutenberg / editor / components / autocomplete / index.js View on Github external
updateCompletersState() {
			const { blockName, completers } = this.props;
			let nextCompleters = completers;
			const lastFilteredCompletersProp = nextCompleters;

			if ( hasFilter( 'editor.Autocomplete.completers' ) ) {
				nextCompleters = applyFilters(
					'editor.Autocomplete.completers',
					// Provide copies so filters may directly modify them.
					nextCompleters && nextCompleters.map( clone ),
					blockName,
				);
			}

			this.setState( {
				lastFilteredCompletersProp,
				completers: nextCompleters || completersFallback,
			} );
		}
github WordPress / gutenberg / packages / blocks / src / api / serializer.js View on Github external
export function getSaveElement( blockTypeOrName, attributes, innerBlocks = [] ) {
	const blockType = normalizeBlockType( blockTypeOrName );
	let { save } = blockType;

	// Component classes are unsupported for save since serialization must
	// occur synchronously. For improved interoperability with higher-order
	// components which often return component class, emulate basic support.
	if ( save.prototype instanceof Component ) {
		const instance = new save( { attributes } );
		save = instance.render.bind( instance );
	}

	let element = save( { attributes, innerBlocks } );

	if ( isObject( element ) && hasFilter( 'blocks.getSaveContent.extraProps' ) ) {
		/**
		 * Filters the props applied to the block save result element.
		 *
		 * @param {Object}      props      Props applied to save element.
		 * @param {WPBlockType} blockType  Block type definition.
		 * @param {Object}      attributes Block attributes.
		 */
		const props = applyFilters(
			'blocks.getSaveContent.extraProps',
			{ ...element.props },
			blockType,
			attributes
		);

		if ( ! isShallowEqual( props, element.props ) ) {
			element = cloneElement( element, props );
github WordPress / gutenberg / packages / block-editor / src / components / autocomplete / index.js View on Github external
updateCompletersState() {
			const { blockName, completers } = this.props;
			let nextCompleters = completers;
			const lastFilteredCompletersProp = nextCompleters;

			if ( hasFilter( 'editor.Autocomplete.completers' ) ) {
				nextCompleters = applyFilters(
					'editor.Autocomplete.completers',
					// Provide copies so filters may directly modify them.
					nextCompleters && nextCompleters.map( clone ),
					blockName,
				);
			}

			this.setState( {
				lastFilteredCompletersProp,
				completers: nextCompleters || completersFallback,
			} );
		}
github WordPress / gutenberg / packages / editor / src / components / autocomplete / index.js View on Github external
updateCompletersState() {
			const { blockName, completers } = this.props;
			let nextCompleters = completers;
			const lastFilteredCompletersProp = nextCompleters;

			if ( hasFilter( 'editor.Autocomplete.completers' ) ) {
				nextCompleters = applyFilters(
					'editor.Autocomplete.completers',
					// Provide copies so filters may directly modify them.
					nextCompleters && nextCompleters.map( clone ),
					blockName,
				);
			}

			this.setState( {
				lastFilteredCompletersProp,
				completers: nextCompleters || completersFallback,
			} );
		}
github htmlburger / carbon-fields / packages / core / hocs / with-validation / index.js View on Github external
return function( effect ) {
		const {
			id,
			field,
			markAsInvalid,
			markAsValid,
			lockSaving,
			unlockSaving
		} = props;

		switch ( effect.type ) {
			case 'VALIDATE':
				const { value, transient } = effect.payload;

				const hook = `carbon-fields.${ field.type }.validate`;
				const error = hasFilter( hook )
					? applyFilters( hook, field, value )
					: required( value );

				if ( error ) {
					if ( ! transient ) {
						markAsInvalid( id, error );
					}

					lockSaving( id );
				} else {
					if ( ! transient ) {
						markAsValid( id );
					}

					unlockSaving( id );
				}