File "emitter-callback.ts"
Full path: /home/kosmetik/public_html/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/js/base/context/event-emit/emitter-callback.ts
File
size: 496 B
MIME-type: text/plain
Charset: utf-8
Download Open Edit Advanced Editor Back
/**
* Internal dependencies
*/
import { actions } from './reducer';
import type { ActionType, ActionCallbackType } from './types';
export const emitterCallback = (
type: string,
observerDispatch: React.Dispatch< ActionType >
) => ( callback: ActionCallbackType, priority = 10 ): ( () => void ) => {
const action = actions.addEventCallback( type, callback, priority );
observerDispatch( action );
return () => {
observerDispatch( actions.removeEventCallback( type, action.id ) );
};
};