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
/
base
/
context
/
hooks
:
use-emit-response.js
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
/** * @typedef {import('@woocommerce/type-defs/hooks').EmitResponseTypes} EmitResponseTypes * @typedef {import('@woocommerce/type-defs/hooks').NoticeContexts} NoticeContexts * @typedef {import('@woocommerce/type-defs/hooks').EmitResponseApi} EmitResponseApi */ const isResponseOf = ( response, type ) => { return !! response.type && response.type === type; }; /** * @type {EmitResponseTypes} */ const responseTypes = { SUCCESS: 'success', FAIL: 'failure', ERROR: 'error', }; /** * @type {NoticeContexts} */ const noticeContexts = { PAYMENTS: 'wc/payment-area', EXPRESS_PAYMENTS: 'wc/express-payment-area', }; export const isSuccessResponse = ( response ) => { return isResponseOf( response, responseTypes.SUCCESS ); }; export const isErrorResponse = ( response ) => { return isResponseOf( response, responseTypes.ERROR ); }; export const isFailResponse = ( response ) => { return isResponseOf( response, responseTypes.FAIL ); }; export const shouldRetry = ( response ) => { return typeof response.retry === 'undefined' || response.retry === true; }; /** * A custom hook exposing response utilities for emitters. * * @return {EmitResponseApi} Various interfaces for validating and implementing * emitter response properties. */ export const useEmitResponse = () => { return { responseTypes, noticeContexts, shouldRetry, isSuccessResponse, isErrorResponse, isFailResponse, }; };