UNPKG

@nacelle/react-hooks

Version:

Custom convenience hooks for use when building apps with Nacelle

56 lines (55 loc) 2.17 kB
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;