@commercelayer/react-components
Version:
The Official Commerce Layer React Components
51 lines (50 loc) • 1.87 kB
TypeScript
import type { Order, PaymentMethod as PaymentMethodType } from "@commercelayer/sdk";
import { type JSX } from "react";
import type { PaymentResource } from "../../reducers/PaymentMethodReducer";
import type { LoaderType } from "../../typings/index";
import type { DefaultChildrenType } from "../../typings/globals";
export interface PaymentMethodOnClickParams {
payment?: PaymentMethodType | Record<string, any>;
order?: Order;
paymentSource?: Order["payment_source"];
}
type Props = {
/**
* Hide payment methods by an array of strings or a function that returns a boolean
*/
hide?: PaymentResource[] | ((payment: PaymentMethodType) => boolean);
children: DefaultChildrenType;
/**
* Set CSS classes when the payment method is selected
*/
activeClass?: string;
/**
* Customize the loader component
*/
loader?: LoaderType;
/**
* Show loader while fetching payment methods
* @default undefined
*/
showLoader?: boolean;
/**
* Auto select the payment method when there is only one available
*/
autoSelectSinglePaymentMethod?: boolean | (() => void);
/**
* Enable express payment. Other payment methods will be disabled.
*/
expressPayments?: boolean;
/**
* Sort payment methods by an array of strings
*/
sortBy?: Array<PaymentMethodType["payment_source_type"]>;
} & Omit<JSX.IntrinsicElements["div"], "onClick" | "children"> & ({
clickableContainer: true;
onClick?: (params: PaymentMethodOnClickParams) => void;
} | {
clickableContainer?: never;
onClick?: never;
});
export declare function PaymentMethod({ children, className, activeClass, loader, clickableContainer, autoSelectSinglePaymentMethod, expressPayments, showLoader, hide, onClick, sortBy, ...p }: Props): JSX.Element;
export default PaymentMethod;