UNPKG

@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
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>;