/**
* Internal dependencies
*/
import type {
PaymentMethodDataContextType,
PaymentMethodDataContextState,
} from './types';
export enum STATUS {
PRISTINE = 'pristine',
STARTED = 'started',
PROCESSING = 'processing',
ERROR = 'has_error',
FAILED = 'failed',
SUCCESS = 'success',
COMPLETE = 'complete',
}
export enum ACTION {
SET_REGISTERED_PAYMENT_METHODS = 'set_registered_payment_methods',
SET_REGISTERED_EXPRESS_PAYMENT_METHODS = 'set_registered_express_payment_methods',
SET_SHOULD_SAVE_PAYMENT_METHOD = 'set_should_save_payment_method',
}
// Note - if fields are added/shape is changed, you may want to update PRISTINE reducer clause to preserve your new field.
export const DEFAULT_PAYMENT_DATA_CONTEXT_STATE: PaymentMethodDataContextState = {
currentStatus: STATUS.PRISTINE,
shouldSavePaymentMethod: false,
paymentMethodData: {
payment_method: '',
},
hasSavedToken: false,
errorMessage: '',
paymentMethods: {},
expressPaymentMethods: {},
};
export const DEFAULT_PAYMENT_METHOD_DATA: PaymentMethodDataContextType = {
setPaymentStatus: () => ( {
started: () => void null,
processing: () => void null,
completed: () => void null,
error: ( errorMessage: string ) => void errorMessage,
failed: ( errorMessage, paymentMethodData ) =>
void [ errorMessage, paymentMethodData ],
success: ( paymentMethodData, billingData ) =>
void [ paymentMethodData, billingData ],
} ),
currentStatus: {
isPristine: true,
isStarted: false,
isProcessing: false,
isFinished: false,
hasError: false,
hasFailed: false,
isSuccessful: false,
},
paymentStatuses: STATUS,
paymentMethodData: {},
errorMessage: '',
activePaymentMethod: '',
setActivePaymentMethod: () => void null,
activeSavedToken: '',
setActiveSavedToken: () => void null,
customerPaymentMethods: {},
paymentMethods: {},
expressPaymentMethods: {},
paymentMethodsInitialized: false,
expressPaymentMethodsInitialized: false,
onPaymentProcessing: () => () => () => void null,
setExpressPaymentError: () => void null,
setShouldSavePayment: () => void null,
shouldSavePayment: false,
};