Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
optometrists
/
cache
/
cache
/
cache
/
cache
/
cache
/
cache
/
cache
/
.wp-cli
/
wp-content
/
plugins
/
woocommerce
/
packages
/
woocommerce-blocks
/
assets
/
js
/
payment-method-extensions
/
payment-methods
/
stripe
/
payment-request
:
use-event-handlers.js
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
/** * External dependencies */ import { useState, useCallback } from '@wordpress/element'; /** * Internal dependencies */ import { DEFAULT_STRIPE_EVENT_HANDLERS } from './constants'; /** * A utility hook for maintaining an event handler cache. */ export const useEventHandlers = () => { const [ paymentRequestEventHandlers, setEventHandlers ] = useState( DEFAULT_STRIPE_EVENT_HANDLERS ); const setPaymentRequestEventHandler = useCallback( ( eventName, handler ) => { setEventHandlers( ( prevEventHandlers ) => { return { ...prevEventHandlers, [ eventName ]: handler, }; } ); }, [ setEventHandlers ] ); const clearPaymentRequestEventHandler = useCallback( ( eventName ) => { // @ts-ignore setEventHandlers( ( prevEventHandlers ) => { // @ts-ignore // eslint-disable-next-line no-unused-vars const { [ eventName ]: __, ...newHandlers } = prevEventHandlers; return newHandlers; } ); }, [ setEventHandlers ] ); return { paymentRequestEventHandlers, setPaymentRequestEventHandler, clearPaymentRequestEventHandler, }; };