@commercelayer/react-components
Version:
The Official Commerce Layer React Components
74 lines (73 loc) • 2.89 kB
TypeScript
import type { Order } from "@commercelayer/sdk";
import type { Dispatch, RefObject } from "react";
import type { CommerceLayerConfig } from "../context/CommerceLayerContext";
import type { BaseError } from "../typings/errors";
import type { PaymentResource, PaymentSourceType } from "./PaymentMethodReducer";
export type PlaceOrderActionType = "setErrors" | "setPlaceOrderPermitted" | "setButtonRef" | "setStatus";
export interface PlaceOrderOptions {
paypalPayerId?: string;
adyen?: {
MD?: string;
PaRes?: string;
redirectResult?: string;
};
checkoutCom?: {
session_id: string | undefined;
};
stripe?: {
/**
* @deprecated
* Use `paymentIntentClientSecret` instead
*/
redirectStatus?: string;
paymentIntentClientSecret: string;
};
}
type PlaceOrderStatus = "placing" | "standby" | "disabled";
export interface PlaceOrderActionPayload {
errors: BaseError[];
isPermitted: boolean;
paymentType: PaymentResource;
paymentSecret: string;
paymentId: string;
paymentSource: PaymentSourceType;
options?: PlaceOrderOptions;
placeOrderButtonRef?: RefObject<HTMLButtonElement | null>;
status: PlaceOrderStatus;
}
export declare function setButtonRef(ref: RefObject<HTMLButtonElement | null>, dispatch: Dispatch<PlaceOrderAction>): void;
export type PlaceOrderState = Partial<PlaceOrderActionPayload>;
export interface PlaceOrderAction {
type: PlaceOrderActionType;
payload: Partial<PlaceOrderActionPayload>;
}
export declare const placeOrderInitialState: PlaceOrderState;
export declare function setPlaceOrderErrors<V extends BaseError[]>(errors: V, dispatch: Dispatch<PlaceOrderAction>): void;
interface TPlaceOrderPermittedParams {
config?: CommerceLayerConfig;
dispatch: Dispatch<PlaceOrderAction>;
order?: Order;
options?: PlaceOrderOptions;
}
export declare function placeOrderPermitted({ config, order, dispatch, options, }: TPlaceOrderPermittedParams): void;
interface TSetPlaceOrderParams {
config?: CommerceLayerConfig;
order?: Order;
state?: PlaceOrderState;
setOrderErrors?: (errors: BaseError[]) => void;
paymentSource?: PaymentSourceType;
include?: string[];
setOrder?: (order: Order) => void;
currentCustomerPaymentSourceId?: string | null;
}
export declare function setPlaceOrder({ state, order, config, setOrderErrors, paymentSource, setOrder, include, currentCustomerPaymentSourceId, }: TSetPlaceOrderParams): Promise<{
placed: boolean;
errors?: BaseError[];
order?: Order;
}>;
export declare function setPlaceOrderStatus({ status, dispatch, }: {
status: PlaceOrderStatus;
dispatch?: Dispatch<PlaceOrderAction>;
}): void;
declare const placeOrderReducer: (state: PlaceOrderState, reducer: PlaceOrderAction) => PlaceOrderState;
export default placeOrderReducer;