@open-tender/cloud
Version:
A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our cloud-based Order API.
376 lines (375 loc) • 20.3 kB
TypeScript
import { AppState } from '../app';
import { Address, Cart, CartCounts, CartItem, DeviceType, MenuCategory, MenuRevenueCenter, Messages, Modal, Order, OrderType, PrepType, RequestedAt, RequestError, RequestStatus, RevenueCenter, ServiceType, SimpleCart, Timezone } from '@open-tender/types';
export interface OrderState {
address: Address | null;
alert: Modal | null;
cart: Cart | null;
cartCounts: CartCounts | null;
currentCategory: MenuCategory | null;
currentItem: CartItem | null;
currentVendor: MenuRevenueCenter | null;
deviceType: DeviceType | null;
error: RequestError | string;
isCurbside: boolean;
isOutpost: boolean;
loading: RequestStatus;
messages: Messages;
orderId: number | null;
orderType: OrderType | null;
prepType: PrepType | null;
requestedAt: RequestedAt | null;
revenueCenter: RevenueCenter | null;
serviceType: ServiceType | null;
table: string | null;
}
export declare enum OrderActionType {
FetchRevenueCenter = "order/fetchRevenueCenter",
FetchLocation = "order/fetchLocation",
RevertMenu = "order/revertMenu",
RefreshRevenueCenter = "order/refreshRevenueCenter",
EditOrder = "order/editOrder",
ReorderPastOrder = "order/reorderPastOrder"
}
export declare const fetchRevenueCenter: import("@reduxjs/toolkit").AsyncThunk<void, {
revenueCenterId: number;
requestedAt: string | null;
}, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const fetchLocation: import("@reduxjs/toolkit").AsyncThunk<void, {
revenueCenterId: number;
cartTotal?: string | undefined;
}, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const fetchLocationBySlug: import("@reduxjs/toolkit").AsyncThunk<void, {
slug: string;
cartTotal?: string | undefined;
}, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const revertMenu: import("@reduxjs/toolkit").AsyncThunk<void | RevenueCenter, {
revenueCenterId: number;
serviceType: ServiceType;
requestedAt: RequestedAt;
}, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const refreshRevenueCenter: import("@reduxjs/toolkit").AsyncThunk<any, {
revenueCenterId: number;
serviceType: ServiceType;
requestedAt: RequestedAt | null;
reset?: boolean | undefined;
}, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const editOrder: import("@reduxjs/toolkit").AsyncThunk<void | Partial<OrderState>, Order, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const reorderPastOrder: import("@reduxjs/toolkit").AsyncThunk<void | Partial<OrderState>, {
revenueCenterId: number;
serviceType: ServiceType;
items: SimpleCart;
}, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const resetOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"order/resetOrder">, addItemToCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/addItemToCart">, addMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/addMessage">, decrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/decrementItemInCart">, incrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/incrementItemInCart">, removeItemFromCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/removeItemFromCart">, removeMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/removeMessage">, resetAlert: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"order/resetAlert">, resetCart: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"order/resetCart">, resetLocation: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"order/resetLocation">, resetMessages: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"order/resetMessages">, resetOrderType: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"order/resetOrderType">, resetRevenueCenter: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"order/resetRevenueCenter">, setAddress: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/setAddress">, setAlert: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/setAlert">, setCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/setCart">, setCurbside: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/setCurbside">, setCurrentCategory: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/setCurrentCategory">, setCurrentItem: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/setCurrentItem">, setDeviceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/setDeviceType">, setMenuVars: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/setMenuVars">, setOrderId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/setOrderId">, setOrderServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
orderType: OrderType;
serviceType: ServiceType;
isOutpost?: boolean | undefined;
}, "order/setOrderServiceType">, setOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/setOrderType">, setPrepType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/setPrepType">, setRequestedAt: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/setRequestedAt">, setRevenueCenter: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/setRevenueCenter">, setServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/setServiceType">, setTable: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/setTable">, checkout: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"order/checkout">, setCurrentVendor: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/setCurrentVendor">, updateOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "order/updateOrder">;
export declare const selectAlert: (state: AppState) => Modal | null;
export declare const selectTimezone: (state: AppState) => Timezone;
export declare const selectOrder: (state: AppState) => OrderState;
export declare const selectCartQuantity: (state: AppState) => number;
export declare const selectCartTotal: (state: AppState) => number;
export declare const selectCartCounts: (state: AppState) => CartCounts;
export declare const selectCanOrder: (state: AppState) => RequestedAt | null;
export declare const selectOrderLimits: ((state: import("redux").EmptyObject & {
alerts: import("@open-tender/types").Alerts;
allergens: import("./allergens").AllergensState;
announcements: import("./announcements").AnnouncementsState;
checkout: import("./checkout").CheckoutState;
completedOrders: import("./completedOrders").CompletedOrdersState;
config: import("./config").ConfigState;
confirmation: import("./confirmation").ConfirmationState;
customer: import("redux").CombinedState<{
account: import("./customer").AccountState;
communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
creditCards: import("./customer").CustomerCreditCardsState;
allergens: import("./customer").CustomerAllergensState;
addresses: import("./customer").CustomerAddressesState;
favorites: import("./customer").CustomerFavoritesState;
fcmToken: import("./customer").CustomerFcmTokenState;
giftCards: import("./customer").CustomerGiftCardsState;
groupOrders: import("./customer").CustomerGroupOrdersState;
history: import("./customer").CustomerHistoryState;
houseAccounts: import("./customer").CustomerHouseAccountsState;
loyalty: import("./customer").CustomerLoyaltyState;
order: import("./customer").CustomerOrderState;
orders: import("./customer").CustomerOrdersState;
pointsShop: import("./customer").PointsShopState;
tplsPointsShop: import("./customer").TplsPointsShopState;
qrcode: import("./customer").CustomerQRCodeState;
rewards: import("./customer").CustomerRewardsState;
thanx: import("./customer").CustomerThanxState;
tpls: import("./customer").CustomerTplsState;
}>;
deals: import("./deals").DealsState;
donations: import("./donations").DonationState;
geolocation: import("./geolocation").GeoLocationState;
giftCards: import("./giftCards").GiftCardsState;
groupOrder: import("./groupOrder").GroupOrderState;
guest: import("./guest").GuestState;
loader: import("./loader").LoaderState;
menu: import("./menu").MenuState;
menuDisplay: import("./menuDisplay").MenuDisplayState;
menuItems: import("./menuItems").MenuItemsState;
modal: Modal;
misc: import("./misc").MiscState;
nav: import("./nav").NavState;
navSite: import("./navSite").NavSiteState;
notifications: import("@open-tender/types").Notifications;
oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
order: OrderState;
orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
orderRating: import("./orderRating").OrderRatingState;
posts: import("./posts").PostsSlice;
pushNotifications: import("./pushNotifications").PushNotificationsState;
qr: import("./qr").QrState;
quote: import("./quote").QuoteState;
resetPassword: import("./resetPassword").ResetPasswordState;
revenueCenters: import("./revenueCenters").RevenueCentersState;
rewardCode: import("./rewardCode").RewardCodeState;
sidebar: import("./sidebar").SidebarState;
sidebarModal: import("./sidebarModal").SidebarModalState;
signUp: import("./signUp").SignUpState;
tags: import("./tags").TagsState;
terms: import("./terms").TermsSlice;
Unsubscribe: import("./unsubscribe").UnsubscribeState;
validTimes: import("./validTimes").ValidTimesState;
verifyAccount: import("./verifyAccount").VerifyAccountState;
}) => {
orderMinimum: number | null;
orderMaximum: number | null;
}) & import("reselect").OutputSelectorFields<(args_0: {
revenueCenter: RevenueCenter | null;
serviceType: ServiceType | null;
cartGuest: import("./groupOrder").GroupOrderGuestState | null;
spendingLimit: string | null;
}) => {
orderMinimum: number | null;
orderMaximum: number | null;
}, {
clearCache: () => void;
}> & {
clearCache: () => void;
};
export declare const selectCartIds: ((state: import("redux").EmptyObject & {
alerts: import("@open-tender/types").Alerts;
allergens: import("./allergens").AllergensState;
announcements: import("./announcements").AnnouncementsState;
checkout: import("./checkout").CheckoutState;
completedOrders: import("./completedOrders").CompletedOrdersState;
config: import("./config").ConfigState;
confirmation: import("./confirmation").ConfirmationState;
customer: import("redux").CombinedState<{
account: import("./customer").AccountState;
communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
creditCards: import("./customer").CustomerCreditCardsState;
allergens: import("./customer").CustomerAllergensState;
addresses: import("./customer").CustomerAddressesState;
favorites: import("./customer").CustomerFavoritesState;
fcmToken: import("./customer").CustomerFcmTokenState;
giftCards: import("./customer").CustomerGiftCardsState;
groupOrders: import("./customer").CustomerGroupOrdersState;
history: import("./customer").CustomerHistoryState;
houseAccounts: import("./customer").CustomerHouseAccountsState;
loyalty: import("./customer").CustomerLoyaltyState;
order: import("./customer").CustomerOrderState;
orders: import("./customer").CustomerOrdersState;
pointsShop: import("./customer").PointsShopState;
tplsPointsShop: import("./customer").TplsPointsShopState;
qrcode: import("./customer").CustomerQRCodeState;
rewards: import("./customer").CustomerRewardsState;
thanx: import("./customer").CustomerThanxState;
tpls: import("./customer").CustomerTplsState;
}>;
deals: import("./deals").DealsState;
donations: import("./donations").DonationState;
geolocation: import("./geolocation").GeoLocationState;
giftCards: import("./giftCards").GiftCardsState;
groupOrder: import("./groupOrder").GroupOrderState;
guest: import("./guest").GuestState;
loader: import("./loader").LoaderState;
menu: import("./menu").MenuState;
menuDisplay: import("./menuDisplay").MenuDisplayState;
menuItems: import("./menuItems").MenuItemsState;
modal: Modal;
misc: import("./misc").MiscState;
nav: import("./nav").NavState;
navSite: import("./navSite").NavSiteState;
notifications: import("@open-tender/types").Notifications;
oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
order: OrderState;
orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
orderRating: import("./orderRating").OrderRatingState;
posts: import("./posts").PostsSlice;
pushNotifications: import("./pushNotifications").PushNotificationsState;
qr: import("./qr").QrState;
quote: import("./quote").QuoteState;
resetPassword: import("./resetPassword").ResetPasswordState;
revenueCenters: import("./revenueCenters").RevenueCentersState;
rewardCode: import("./rewardCode").RewardCodeState;
sidebar: import("./sidebar").SidebarState;
sidebarModal: import("./sidebarModal").SidebarModalState;
signUp: import("./signUp").SignUpState;
tags: import("./tags").TagsState;
terms: import("./terms").TermsSlice;
Unsubscribe: import("./unsubscribe").UnsubscribeState;
validTimes: import("./validTimes").ValidTimesState;
verifyAccount: import("./verifyAccount").VerifyAccountState;
}) => number[]) & import("reselect").OutputSelectorFields<(args_0: Cart | null) => number[], {
clearCache: () => void;
}> & {
clearCache: () => void;
};
export declare const selectMenuSlug: (state: AppState) => string;
export declare const selectRevenueCenter: (state: AppState) => RevenueCenter | null;
export declare const selectCart: (state: AppState) => Cart | null;
export declare const selectCurrentVendor: (state: AppState) => MenuRevenueCenter | null;
export declare const selectMessages: (state: AppState) => Messages;
export declare const selectCurrentItem: (state: AppState) => CartItem | null;
export declare const selectMenuVars: ((state: import("redux").EmptyObject & {
alerts: import("@open-tender/types").Alerts;
allergens: import("./allergens").AllergensState;
announcements: import("./announcements").AnnouncementsState;
checkout: import("./checkout").CheckoutState;
completedOrders: import("./completedOrders").CompletedOrdersState;
config: import("./config").ConfigState;
confirmation: import("./confirmation").ConfirmationState;
customer: import("redux").CombinedState<{
account: import("./customer").AccountState;
communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
creditCards: import("./customer").CustomerCreditCardsState;
allergens: import("./customer").CustomerAllergensState;
addresses: import("./customer").CustomerAddressesState;
favorites: import("./customer").CustomerFavoritesState;
fcmToken: import("./customer").CustomerFcmTokenState;
giftCards: import("./customer").CustomerGiftCardsState;
groupOrders: import("./customer").CustomerGroupOrdersState;
history: import("./customer").CustomerHistoryState;
houseAccounts: import("./customer").CustomerHouseAccountsState;
loyalty: import("./customer").CustomerLoyaltyState;
order: import("./customer").CustomerOrderState;
orders: import("./customer").CustomerOrdersState;
pointsShop: import("./customer").PointsShopState;
tplsPointsShop: import("./customer").TplsPointsShopState;
qrcode: import("./customer").CustomerQRCodeState;
rewards: import("./customer").CustomerRewardsState;
thanx: import("./customer").CustomerThanxState;
tpls: import("./customer").CustomerTplsState;
}>;
deals: import("./deals").DealsState;
donations: import("./donations").DonationState;
geolocation: import("./geolocation").GeoLocationState;
giftCards: import("./giftCards").GiftCardsState;
groupOrder: import("./groupOrder").GroupOrderState;
guest: import("./guest").GuestState;
loader: import("./loader").LoaderState;
menu: import("./menu").MenuState;
menuDisplay: import("./menuDisplay").MenuDisplayState;
menuItems: import("./menuItems").MenuItemsState;
modal: Modal;
misc: import("./misc").MiscState;
nav: import("./nav").NavState;
navSite: import("./navSite").NavSiteState;
notifications: import("@open-tender/types").Notifications;
oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
order: OrderState;
orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
orderRating: import("./orderRating").OrderRatingState;
posts: import("./posts").PostsSlice;
pushNotifications: import("./pushNotifications").PushNotificationsState;
qr: import("./qr").QrState;
quote: import("./quote").QuoteState;
resetPassword: import("./resetPassword").ResetPasswordState;
revenueCenters: import("./revenueCenters").RevenueCentersState;
rewardCode: import("./rewardCode").RewardCodeState;
sidebar: import("./sidebar").SidebarState;
sidebarModal: import("./sidebarModal").SidebarModalState;
signUp: import("./signUp").SignUpState;
tags: import("./tags").TagsState;
terms: import("./terms").TermsSlice;
Unsubscribe: import("./unsubscribe").UnsubscribeState;
validTimes: import("./validTimes").ValidTimesState;
verifyAccount: import("./verifyAccount").VerifyAccountState;
}) => {
revenueCenterId: number | null;
serviceType: ServiceType | null;
requestedAt: RequestedAt | null;
}) & import("reselect").OutputSelectorFields<(args_0: {
revenueCenter: RevenueCenter | null;
serviceType: ServiceType | null;
requestedAt: RequestedAt | null;
}) => {
revenueCenterId: number | null;
serviceType: ServiceType | null;
requestedAt: RequestedAt | null;
}, {
clearCache: () => void;
}> & {
clearCache: () => void;
};
export declare const selectAutoSelect: (state: AppState) => boolean | undefined;
export declare const selectCurrentCategory: (state: AppState) => MenuCategory | null;
export declare const orderReducer: import("redux").Reducer<OrderState, import("redux").AnyAction>;