@open-tender/store
Version:
A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our in-store POS API
296 lines (295 loc) • 15.4 kB
TypeScript
import { Cart, CartCounts, CartItem, CartLevels, DeviceType, MenuCategory, MenuRevenueCenter, Messages, OrderCart, OrderType, PrepType, RequestError, RequestStatus, RequestedAt, ServiceType } from '@open-tender/types';
import { AppState } from '../app';
export interface NestedOption {
groupId: number;
optionId: number;
levels: CartLevels;
}
export interface OrderState {
orderId: string | null;
orderType: OrderType | null;
serviceType: ServiceType | null;
revenueCenterId: number | null;
table: string | null;
prepType: PrepType | null;
requestedAt: RequestedAt;
currentVendor: MenuRevenueCenter | null;
currentCategory: MenuCategory | null;
currentItem: CartItem | null;
currentOption: NestedOption | null;
currentSection: string | null;
cart: Cart;
cartCounts: CartCounts;
messages: Messages;
alert: string | null;
error: RequestError;
loading: RequestStatus;
deviceType?: DeviceType;
}
export declare enum OrderActionType {
Reorder = "orders/reorder"
}
export declare const reorder: import("@reduxjs/toolkit").AsyncThunk<{
cart: Cart;
cartCounts: CartCounts;
}, OrderCart, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const resetOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetOrder">, resetOrderType: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetOrderType">, resetRevenueCenter: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetRevenueCenter">, resetLocation: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetLocation">, resetCart: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetCart">, resetMessages: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetMessages">, resetAlert: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetAlert">, setAlert: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setAlert">, setOrderId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderId">, setOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderType">, setServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setServiceType">, setRequestedAt: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setRequestedAt">, setRevenueCenterId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setRevenueCenterId">, setTable: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setTable">, setPrepType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setPrepType">, setOrderServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderServiceType">, setMenuVars: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setMenuVars">, setCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCart">, setCurrentVendor: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentVendor">, setCurrentCategory: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentCategory">, setCurrentItem: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentItem">, setCurrentOption: import("@reduxjs/toolkit").ActionCreatorWithPayload<NestedOption | null, "orders/setCurrentOption">, setCurrentSection: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentSection">, addItemToCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/addItemToCart">, removeItemFromCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/removeItemFromCart">, incrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/incrementItemInCart">, decrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/decrementItemInCart">, addMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/addMessage">, removeMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/removeMessage">, setOrderDeviceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderDeviceType">;
export declare const selectOrder: (state: AppState) => OrderState;
export declare const selectAlert: (state: AppState) => string | null;
export declare const selectMessages: (state: AppState) => Messages;
export declare const selectOrderType: (state: AppState) => OrderType | null;
export declare const selectOrderTypeName: (state: AppState) => string;
export declare const selectServiceType: (state: AppState) => ServiceType | null;
export declare const selectServiceTypeName: (state: AppState) => string | undefined;
export declare const selectRequestedAt: (state: AppState) => `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | "ASAP";
export declare const selectRevenueCenterId: (state: AppState) => number | null;
export declare const selectMenuSlug: (state: AppState) => string;
export declare const selectMenuVars: (state: AppState) => {
revenueCenterId: number | null;
serviceType: ServiceType | null;
requestedAt: RequestedAt;
};
export declare const selectCurrentVendor: (state: AppState) => MenuRevenueCenter | null;
export declare const selectCurrentCategory: (state: AppState) => MenuCategory | null;
export declare const selectCurrentItem: (state: AppState) => CartItem | null;
export declare const selectCurrentOption: (state: AppState) => NestedOption | null;
export declare const selectCurrentSection: (state: AppState) => string | null;
export declare const selectCart: (state: AppState) => Cart;
export declare const selectCartIds: ((state: {
alerts: import("@open-tender/types").Alerts;
allergens: import("./allergens").AllergensState;
arrivals: import("./arrivals").ArrivalsState;
cartSummary: import("./cartSummary").CartSummaryState;
checkout: import("./checkout").CheckoutState;
config: import("./config").ConfigState;
customer: import("./customer").CustomerState;
customerIdentify: import("./customerIdentify").CustomerIdentifyState;
deals: import("./deals").DealsState;
discounts: import("./discounts").DiscountsState;
errorAlerts: import("./errorAlerts").ErrorAlertsState;
kds: import("./kds").KdsState;
kiosk: import("./kiosk").KioskState;
menu: import("./menu").MenuState;
menuPages: import("./menuPages").MenuPagesState;
modal: import("./modal").ModalState;
notifications: import("@open-tender/types").Notifications;
offlineAuths: import("./offlineAuths").OfflineAuthsState;
order: OrderState;
pos: import("./pos").PosState;
punches: import("./punches").PunchesState;
refund: import("./refund").RefundState;
sendReceipt: import("./sendReceipt").SendReceiptState;
settings: import("./settings").SettingsState;
sidebar: import("./sidebar").SidebarState;
surcharges: import("./surcharges").SurchargesState;
taxes: import("./taxes").TaxesState;
idle: import("./idle").IdleState;
tags: import("./tags").TagsState;
revenueCenter: import("./revenueCenter").RevenueCenterState;
}) => number[]) & {
clearCache: () => void;
resultsCount: () => number;
resetResultsCount: () => void;
} & {
resultFunc: (resultFuncArgs_0: Cart) => number[];
memoizedResultFunc: ((resultFuncArgs_0: Cart) => number[]) & {
clearCache: () => void;
resultsCount: () => number;
resetResultsCount: () => void;
};
lastResult: () => number[];
dependencies: [(state: AppState) => Cart];
recomputations: () => number;
resetRecomputations: () => void;
dependencyRecomputations: () => number;
resetDependencyRecomputations: () => void;
} & {
argsMemoize: typeof import("reselect").weakMapMemoize;
memoize: typeof import("reselect").weakMapMemoize;
};
export declare const selectCartQuantity: ((state: {
alerts: import("@open-tender/types").Alerts;
allergens: import("./allergens").AllergensState;
arrivals: import("./arrivals").ArrivalsState;
cartSummary: import("./cartSummary").CartSummaryState;
checkout: import("./checkout").CheckoutState;
config: import("./config").ConfigState;
customer: import("./customer").CustomerState;
customerIdentify: import("./customerIdentify").CustomerIdentifyState;
deals: import("./deals").DealsState;
discounts: import("./discounts").DiscountsState;
errorAlerts: import("./errorAlerts").ErrorAlertsState;
kds: import("./kds").KdsState;
kiosk: import("./kiosk").KioskState;
menu: import("./menu").MenuState;
menuPages: import("./menuPages").MenuPagesState;
modal: import("./modal").ModalState;
notifications: import("@open-tender/types").Notifications;
offlineAuths: import("./offlineAuths").OfflineAuthsState;
order: OrderState;
pos: import("./pos").PosState;
punches: import("./punches").PunchesState;
refund: import("./refund").RefundState;
sendReceipt: import("./sendReceipt").SendReceiptState;
settings: import("./settings").SettingsState;
sidebar: import("./sidebar").SidebarState;
surcharges: import("./surcharges").SurchargesState;
taxes: import("./taxes").TaxesState;
idle: import("./idle").IdleState;
tags: import("./tags").TagsState;
revenueCenter: import("./revenueCenter").RevenueCenterState;
}) => number) & {
clearCache: () => void;
resultsCount: () => number;
resetResultsCount: () => void;
} & {
resultFunc: (resultFuncArgs_0: Cart) => number;
memoizedResultFunc: ((resultFuncArgs_0: Cart) => number) & {
clearCache: () => void;
resultsCount: () => number;
resetResultsCount: () => void;
};
lastResult: () => number;
dependencies: [(state: AppState) => Cart];
recomputations: () => number;
resetRecomputations: () => void;
dependencyRecomputations: () => number;
resetDependencyRecomputations: () => void;
} & {
argsMemoize: typeof import("reselect").weakMapMemoize;
memoize: typeof import("reselect").weakMapMemoize;
};
export declare const selectCartTotal: ((state: {
alerts: import("@open-tender/types").Alerts;
allergens: import("./allergens").AllergensState;
arrivals: import("./arrivals").ArrivalsState;
cartSummary: import("./cartSummary").CartSummaryState;
checkout: import("./checkout").CheckoutState;
config: import("./config").ConfigState;
customer: import("./customer").CustomerState;
customerIdentify: import("./customerIdentify").CustomerIdentifyState;
deals: import("./deals").DealsState;
discounts: import("./discounts").DiscountsState;
errorAlerts: import("./errorAlerts").ErrorAlertsState;
kds: import("./kds").KdsState;
kiosk: import("./kiosk").KioskState;
menu: import("./menu").MenuState;
menuPages: import("./menuPages").MenuPagesState;
modal: import("./modal").ModalState;
notifications: import("@open-tender/types").Notifications;
offlineAuths: import("./offlineAuths").OfflineAuthsState;
order: OrderState;
pos: import("./pos").PosState;
punches: import("./punches").PunchesState;
refund: import("./refund").RefundState;
sendReceipt: import("./sendReceipt").SendReceiptState;
settings: import("./settings").SettingsState;
sidebar: import("./sidebar").SidebarState;
surcharges: import("./surcharges").SurchargesState;
taxes: import("./taxes").TaxesState;
idle: import("./idle").IdleState;
tags: import("./tags").TagsState;
revenueCenter: import("./revenueCenter").RevenueCenterState;
}) => number) & {
clearCache: () => void;
resultsCount: () => number;
resetResultsCount: () => void;
} & {
resultFunc: (resultFuncArgs_0: Cart) => number;
memoizedResultFunc: ((resultFuncArgs_0: Cart) => number) & {
clearCache: () => void;
resultsCount: () => number;
resetResultsCount: () => void;
};
lastResult: () => number;
dependencies: [(state: AppState) => Cart];
recomputations: () => number;
resetRecomputations: () => void;
dependencyRecomputations: () => number;
resetDependencyRecomputations: () => void;
} & {
argsMemoize: typeof import("reselect").weakMapMemoize;
memoize: typeof import("reselect").weakMapMemoize;
};
export declare const selectCartTotals: ((state: {
alerts: import("@open-tender/types").Alerts;
allergens: import("./allergens").AllergensState;
arrivals: import("./arrivals").ArrivalsState;
cartSummary: import("./cartSummary").CartSummaryState;
checkout: import("./checkout").CheckoutState;
config: import("./config").ConfigState;
customer: import("./customer").CustomerState;
customerIdentify: import("./customerIdentify").CustomerIdentifyState;
deals: import("./deals").DealsState;
discounts: import("./discounts").DiscountsState;
errorAlerts: import("./errorAlerts").ErrorAlertsState;
kds: import("./kds").KdsState;
kiosk: import("./kiosk").KioskState;
menu: import("./menu").MenuState;
menuPages: import("./menuPages").MenuPagesState;
modal: import("./modal").ModalState;
notifications: import("@open-tender/types").Notifications;
offlineAuths: import("./offlineAuths").OfflineAuthsState;
order: OrderState;
pos: import("./pos").PosState;
punches: import("./punches").PunchesState;
refund: import("./refund").RefundState;
sendReceipt: import("./sendReceipt").SendReceiptState;
settings: import("./settings").SettingsState;
sidebar: import("./sidebar").SidebarState;
surcharges: import("./surcharges").SurchargesState;
taxes: import("./taxes").TaxesState;
idle: import("./idle").IdleState;
tags: import("./tags").TagsState;
revenueCenter: import("./revenueCenter").RevenueCenterState;
}) => {
count: number;
total: number;
}) & {
clearCache: () => void;
resultsCount: () => number;
resetResultsCount: () => void;
} & {
resultFunc: (resultFuncArgs_0: Cart) => {
count: number;
total: number;
};
memoizedResultFunc: ((resultFuncArgs_0: Cart) => {
count: number;
total: number;
}) & {
clearCache: () => void;
resultsCount: () => number;
resetResultsCount: () => void;
};
lastResult: () => {
count: number;
total: number;
};
dependencies: [(state: AppState) => Cart];
recomputations: () => number;
resetRecomputations: () => void;
dependencyRecomputations: () => number;
resetDependencyRecomputations: () => void;
} & {
argsMemoize: typeof import("reselect").weakMapMemoize;
memoize: typeof import("reselect").weakMapMemoize;
};
export declare const selectCartCounts: (state: AppState) => CartCounts;
export declare const selectCanOrder: (state: AppState) => 0 | RequestedAt | null;
export declare const selectCartValidate: (state: AppState) => {
revenueCenterId: number | null;
serviceType: ServiceType | null;
requestedAt: RequestedAt;
cart: Cart;
};
export declare const orderReducer: import("redux").Reducer<OrderState>;