woocommerce/packages/woocommerce-blocks/assets/js/base/hooks/use-throw-error.ts
2021-12-10 12:03:04 +00:00

21 lines
509 B
TypeScript

/**
* External dependencies
*/
import { useState, useCallback } from '@wordpress/element';
/**
* Helper method for throwing an error in a React Hook.
*
* @see https://github.com/facebook/react/issues/14981
*
* @return {function(Object)} A function receiving the error that will be thrown.
*/
export const useThrowError = (): ( ( error: Error ) => void ) => {
const [ , setState ] = useState();
return useCallback( ( error: Error ): void => {
setState( () => {
throw error;
} );
}, [] );
};