File "types.ts"
Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/js/base/context/providers/cart-checkout/payment-methods/types.ts
File size: 5.68 KB
MIME-type: text/x-java
Charset: utf-8
/**
* External dependencies
*/
import type { ReactNode } from 'react';
/**
* Internal dependencies
*/
import type { emitterCallback } from '../../../event-emit';
import { STATUS } from './constants';
type ObjectType = Record< string, unknown >;
type EmptyObjectType = Record< string, never >;
export interface PaymentMethodConfig {
// A unique string to identify the payment method client side.
name: string;
// A react node for your payment method UI.
content: ReactNode;
// A react node to display a preview of your payment method in the editor.
edit: ReactNode;
// A callback to determine whether the payment method should be shown in the checkout.
canMakePayment: (
cartData: ObjectType
) => Promise< boolean | { error: { message: string } } >;
// A unique string to represent the payment method server side. If not provided, defaults to name.
paymentMethodId?: string;
// Object that describes various features provided by the payment method.
supports: ObjectType;
// Array of card types (brands) supported by the payment method. (See stripe/credit-card for example.)
icons: ObjectType;
// A react node that will be used as a label for the payment method in the checkout.
label: ReactNode;
// An accessibility label. Screen readers will output this label when the payment method is selected.
ariaLabel: string;
// Optionally customize the label text for the checkout submit (`Place Order`) button.
placeOrderButtonLabel?: string;
}
export type ExpressPaymentMethodConfig = Omit<
PaymentMethodConfig,
'icons' | 'label' | 'ariaLabel' | 'placeOrderButtonLabel'
>;
export type PaymentMethods =
| Record< string, PaymentMethodConfig >
| EmptyObjectType;
export type ExpressPaymentMethods =
| Record< string, ExpressPaymentMethodConfig >
| EmptyObjectType;
export interface CustomerPaymentMethod {
method: PaymentMethodConfig;
expires: string;
// eslint-disable-next-line camelcase
is_default: boolean;
tokenId: number;
actions: ObjectType;
}
export type CustomerPaymentMethods =
| Record< string, CustomerPaymentMethod >
| EmptyObjectType;
export type PaymentMethodsDispatcherType = (
paymentMethods: PaymentMethods | ExpressPaymentMethods
) => void;
export interface PaymentStatusDispatchers {
started: ( paymentMethodData?: ObjectType | EmptyObjectType ) => void;
processing: () => void;
completed: () => void;
error: ( error: string ) => void;
failed: (
error?: string,
paymentMethodData?: ObjectType | EmptyObjectType,
billingData?: ObjectType | EmptyObjectType
) => void;
success: (
paymentMethodData?: ObjectType | EmptyObjectType,
billingData?: ObjectType | EmptyObjectType,
shippingData?: ObjectType | EmptyObjectType
) => void;
}
export interface PaymentMethodDataContextState {
currentStatus: STATUS;
shouldSavePaymentMethod: boolean;
paymentMethodData: ObjectType | EmptyObjectType;
hasSavedToken: boolean;
errorMessage: string;
paymentMethods: PaymentMethods;
expressPaymentMethods: ExpressPaymentMethods;
}
export type PaymentMethodCurrentStatusType = {
// If true then the payment method state in checkout is pristine.
isPristine: boolean;
// If true then the payment method has been initialized and has started.
isStarted: boolean;
// If true then the payment method is processing payment.
isProcessing: boolean;
// If true then the payment method is in a finished state (which may mean it's status is either error, failed, or success).
isFinished: boolean;
// If true then the payment method is in an error state.
hasError: boolean;
// If true then the payment method has failed (usually indicates a problem with the payment method used, not logic error).
hasFailed: boolean;
// If true then the payment method has completed it's processing successfully.
isSuccessful: boolean;
};
export type PaymentMethodDataContextType = {
// Sets the payment status for the payment method.
setPaymentStatus: () => PaymentStatusDispatchers;
// The current payment status.
currentStatus: PaymentMethodCurrentStatusType;
// An object of payment status constants.
paymentStatuses: ObjectType;
// Arbitrary data to be passed along for processing by the payment method on the server.
paymentMethodData: ObjectType | EmptyObjectType;
// An error message provided by the payment method if there is an error.
errorMessage: string;
// The active payment method slug.
activePaymentMethod: string;
// A function for setting the active payment method.
setActivePaymentMethod: ( paymentMethod: string ) => void;
// Current active token.
activeSavedToken: string;
// A function for setting the active payment method token.
setActiveSavedToken: ( activeSavedToken: string ) => void;
// Returns the customer payment for the customer if it exists.
customerPaymentMethods:
| Record< string, CustomerPaymentMethod >
| EmptyObjectType;
// Registered payment methods.
paymentMethods: PaymentMethods;
// Registered express payment methods.
expressPaymentMethods: ExpressPaymentMethods;
// True when all registered payment methods have been initialized.
paymentMethodsInitialized: boolean;
// True when all registered express payment methods have been initialized.
expressPaymentMethodsInitialized: boolean;
// Event registration callback for registering observers for the payment processing event.
onPaymentProcessing: ReturnType< typeof emitterCallback >;
// A function used by express payment methods to indicate an error for checkout to handle. It receives an error message string. Does not change payment status.
setExpressPaymentError: ( error: string ) => void;
// A function used to set the shouldSavePayment value.
setShouldSavePayment: ( shouldSavePayment: boolean ) => void;
// True means that the configured payment method option is saved for the customer.
shouldSavePayment: boolean;
};