UNPKG

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

423 lines (422 loc) 20.1 kB
import { AppState } from '../app'; import { CartOwner, GroupOrder, ISOString, SimpleCart, RequestError, RequestStatus, ServiceType, RequestedAt, GroupOrderGuests } from '@open-tender/types'; export interface GroupOrderGuestState { cartGuestId: number; firstName: string; lastName: string; } export interface GroupOrderState { cart: SimpleCart; cartGuest: GroupOrderGuestState | null; cartGuests: GroupOrderGuests; cartId: number | null; cartOwner: CartOwner | null; closed: boolean; cutoffAt: ISOString | null; error: RequestError; guestCount: number | null; guestLimit: number | null; isCartOwner: boolean; loading: RequestStatus; requestedAt: RequestedAt | null; revenueCenterId: number | null; serviceType: ServiceType | null; spendingLimit: string | null; token: string | null; } export declare enum GroupOrderActionType { JoinGroupOrder = "groupOrder/joinGroupOrder", FetchGroupOrder = "groupOrder/fetchGroupOrder", UpdateGroupOrder = "groupOrder/updateGroupOrder", ReloadGuestOrder = "groupOrder/reloadGuestOrder", AddCustomerGroupOrder = "customer/addCustomerGroupOrder" } export declare const makeCartPayload: (response: GroupOrder, cartGuestId?: number | null) => { cartId: number; token: string; revenueCenterId: number; serviceType: ServiceType; requestedAt: RequestedAt; cutoffAt: `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | null; guestLimit: number | null; guestCount: number; spendingLimit: string | null; closed: boolean; cartOwner: CartOwner | null; cart: SimpleCart; cartGuests: GroupOrderGuests; }; export declare const joinGroupOrder: import("@reduxjs/toolkit").AsyncThunk<any, { cart_id: number; first_name: string; last_name: string; }, { 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 fetchGroupOrder: import("@reduxjs/toolkit").AsyncThunk<void | Partial<GroupOrderState>, string | number, { 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 updateGroupOrder: import("@reduxjs/toolkit").AsyncThunk<void | Partial<GroupOrderState>, void, { 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 reloadGuestOrder: import("@reduxjs/toolkit").AsyncThunk<void, void, { 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 addCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThunk<GroupOrderState, { spendingLimit?: string | undefined; callback?: (() => void) | 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 resetGroupOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"groupOrder/resetGroupOrder">, adjustGroupOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "groupOrder/adjustGroupOrder">; export declare const selectGroupOrder: (state: AppState) => GroupOrderState; export declare const selectGroupOrderToken: (state: AppState) => string | null; export declare const selectSpendingLimit: ((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: GroupOrderState; guest: import("./guest").GuestState; loader: import("./loader").LoaderState; menu: import("./menu").MenuState; menuDisplay: import("./menuDisplay").MenuDisplayState; menuItems: import("./menuItems").MenuItemsState; modal: import("@open-tender/types").Modal; misc: import("./misc").MiscState; nav: import("./nav").NavState; navSite: import("./navSite").NavSiteState; notifications: import("@open-tender/types").Notifications; oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState; order: import("./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 | null) & import("reselect").OutputSelectorFields<(args_0: { cartGuest: GroupOrderGuestState | null; spendingLimit: string | null; }) => number | null, { clearCache: () => void; }> & { clearCache: () => void; }; export declare const selectGroupOrderClosed: ((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: GroupOrderState; guest: import("./guest").GuestState; loader: import("./loader").LoaderState; menu: import("./menu").MenuState; menuDisplay: import("./menuDisplay").MenuDisplayState; menuItems: import("./menuItems").MenuItemsState; modal: import("@open-tender/types").Modal; misc: import("./misc").MiscState; nav: import("./nav").NavState; navSite: import("./navSite").NavSiteState; notifications: import("@open-tender/types").Notifications; oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState; order: import("./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; }) => boolean | null) & import("reselect").OutputSelectorFields<(args_0: { cartGuest: GroupOrderGuestState | null; cutoffAt: `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | null; closed: boolean; tz: import("@open-tender/types").Timezone; }) => boolean | null, { clearCache: () => void; }> & { clearCache: () => void; }; export declare const selectGroupOrderTests: ((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: GroupOrderState; guest: import("./guest").GuestState; loader: import("./loader").LoaderState; menu: import("./menu").MenuState; menuDisplay: import("./menuDisplay").MenuDisplayState; menuItems: import("./menuItems").MenuItemsState; modal: import("@open-tender/types").Modal; misc: import("./misc").MiscState; nav: import("./nav").NavState; navSite: import("./navSite").NavSiteState; notifications: import("@open-tender/types").Notifications; oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState; order: import("./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; }) => { closed: boolean; pastCutoff: boolean; atCapacity: boolean; }) & import("reselect").OutputSelectorFields<(args_0: { closed: boolean; cutoffAt: `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | null; guestLimit: number | null; guestCount: number | null; tz: import("@open-tender/types").Timezone; }) => { closed: boolean; pastCutoff: boolean; atCapacity: boolean; }, { clearCache: () => void; }> & { clearCache: () => void; }; export declare const selectGroupOrderPrepTimes: ((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: GroupOrderState; guest: import("./guest").GuestState; loader: import("./loader").LoaderState; menu: import("./menu").MenuState; menuDisplay: import("./menuDisplay").MenuDisplayState; menuItems: import("./menuItems").MenuItemsState; modal: import("@open-tender/types").Modal; misc: import("./misc").MiscState; nav: import("./nav").NavState; navSite: import("./navSite").NavSiteState; notifications: import("@open-tender/types").Notifications; oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState; order: import("./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; }) => { prepTime?: undefined; leadTime?: undefined; } | { prepTime: number; leadTime: number; }) & import("reselect").OutputSelectorFields<(args_0: { revenueCenter: import("@open-tender/types").RevenueCenter | null; serviceType: ServiceType | null; }) => { prepTime?: undefined; leadTime?: undefined; } | { prepTime: number; leadTime: number; }, { clearCache: () => void; }> & { clearCache: () => void; }; export declare const groupOrderReducer: import("redux").Reducer<GroupOrderState, import("redux").AnyAction>;