@nacelle/react-hooks
Version:
Custom convenience hooks for use when building apps with Nacelle
56 lines (55 loc) • 2.17 kB
TypeScript
import React from 'react';
import { CLEAR_CHECKOUT_DATA, SET_GET_CHECKOUT_DATA, SET_GET_CHECKOUT_ERROR, SET_PROCESS_CHECKOUT_DATA, SET_PROCESS_CHECKOUT_ERROR } from './use-checkout.reducer';
import { cacheKeys } from './utils';
export declare type CacheKey = typeof cacheKeys[keyof typeof cacheKeys];
export declare type IsCheckingOut = {
isCheckingOut: boolean;
setIsCheckingOut: React.Dispatch<React.SetStateAction<boolean>>;
};
export interface CheckoutProperties {
completed: boolean;
id: string;
url: string;
}
export interface CheckoutState extends CheckoutProperties {
getCheckoutError: string;
processCheckoutError: string;
}
export interface ClearCheckoutDataAction {
type: typeof CLEAR_CHECKOUT_DATA;
payload?: null;
}
export interface SetGetCheckoutErrorAction {
type: typeof SET_GET_CHECKOUT_ERROR;
payload: string;
}
export interface SetGetCheckoutDataAction {
type: typeof SET_GET_CHECKOUT_DATA;
payload: Pick<CheckoutProperties, 'completed' | 'id' | 'url'>;
}
export interface SetProcessCheckoutDataAction {
type: typeof SET_PROCESS_CHECKOUT_DATA;
payload: Pick<CheckoutProperties, 'id' | 'url'>;
}
export interface SetProcessCheckoutErrorAction {
type: typeof SET_PROCESS_CHECKOUT_ERROR;
payload: string;
}
export declare type Actions = ClearCheckoutDataAction | SetGetCheckoutDataAction | SetGetCheckoutErrorAction | SetProcessCheckoutDataAction | SetProcessCheckoutErrorAction;
export interface CheckoutActions {
clearCheckoutData: () => void;
getCheckout: CheckoutClientMethod;
processCheckout: CheckoutClientMethod;
}
export declare type CheckoutClientMethod = (params: unknown) => Promise<CheckoutProperties>;
export interface CheckoutClient {
get: CheckoutClientMethod;
process: CheckoutClientMethod;
}
export declare type CheckoutProviderProps = {
children: JSX.Element | JSX.Element[];
checkoutClient: CheckoutClient;
redirectUserToCheckout?: boolean;
};
export declare type CheckoutContextValue = null | CheckoutState;
export declare type CheckoutActionContextValue = null | CheckoutActions;