@open-tender/cloud 0.1.38 → 0.1.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,4 +22,67 @@ export declare const fetchAllergens: import("@reduxjs/toolkit").AsyncThunk<Aller
22
22
  export declare const resetAllergens: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"allergens/resetAllergens">, setSelectedAllergens: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "allergens/setSelectedAllergens">;
23
23
  export declare const selectAllergens: (state: AppState) => AllergensState;
24
24
  export declare const selectSelectedAllergenNames: (state: AppState) => string[];
25
+ export declare const selectSelectedAllergenNamesMemo: ((state: import("redux").EmptyObject & {
26
+ alerts: import("@open-tender/types").Alerts;
27
+ notifications: import("@open-tender/types").Notifications;
28
+ allergens: AllergensState;
29
+ announcements: import("./announcements").AnnouncementsState;
30
+ customer: import("redux").CombinedState<{
31
+ account: import("./customer").AccountState;
32
+ allergens: import("./customer").CustomerAllergensState;
33
+ addresses: import("./customer").CustomerAddressesState;
34
+ communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
35
+ creditCards: import("./customer").CustomerCreditCardsState;
36
+ favorites: import("./customer").CustomerFavoritesState;
37
+ fcmToken: import("./customer").CustomerFcmTokenState;
38
+ giftCards: import("./customer").CustomerGiftCardsState;
39
+ orders: import("./customer").CustomerOrdersState;
40
+ order: import("./customer").CustomerOrderState;
41
+ loyalty: import("./customer").CustomerLoyaltyState;
42
+ groupOrders: import("./customer").CustomerGroupOrdersState;
43
+ houseAccounts: import("./customer").CustomerHouseAccountsState;
44
+ rewards: import("./customer").CustomerRewardsState;
45
+ qrcode: import("./customer").CustomerQRCodeState;
46
+ thanx: import("./customer").CustomerThanxState;
47
+ levelup: import("./customer").CustomerLevelUpState;
48
+ }>;
49
+ signUp: import("./signUp").SignUpState;
50
+ revenueCenters: import("./revenueCenters").RevenueCentersState;
51
+ completedOrders: import("./completedOrders").CompletedOrdersState;
52
+ checkout: import("./checkout").CheckoutState;
53
+ order: import("./order").OrderState;
54
+ orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
55
+ orderRating: import("./orderRating").OrderRatingState;
56
+ deals: import("./deals").DealState;
57
+ confirmation: import("./confirmation").ConfirmationState;
58
+ donations: import("./donations").DonationState;
59
+ guest: import("./guest").GuestState;
60
+ verifyAccount: import("./verifyAccount").VerifyAccountState;
61
+ menu: import("./menu").MenuState;
62
+ resetPassword: import("./resetPassword").ResetPasswordState;
63
+ validTimes: import("./validTimes").ValidTimesState;
64
+ menuItems: import("./menuItems").MenuItemsState;
65
+ menuDisplay: import("./menuDisplay").MenuDisplayState;
66
+ giftCards: import("./giftCards").GiftCardsState;
67
+ groupOrder: import("./groupOrder").GroupOrderState;
68
+ levelup: import("./levelup").LevelupState;
69
+ config: import("./config").ConfigState;
70
+ geolocation: import("./geolocation").GeoLocationState;
71
+ loader: import("./loader").LoaderState;
72
+ qr: import("./qr").QrState;
73
+ misc: import("./misc").MiscState;
74
+ modal: import("@open-tender/types").Modal;
75
+ navSite: import("./navSite").NavSiteState;
76
+ nav: import("./nav").NavState;
77
+ posts: import("./posts").PostsSlice;
78
+ sidebarModal: import("./sidebarModal").SidebarModalState;
79
+ sidebar: import("./sidebar").SidebarState;
80
+ }) => string[]) & import("reselect").OutputSelectorFields<(args_0: {
81
+ allergens: Allergens;
82
+ selectedAllergens: Allergens | null;
83
+ }) => string[], {
84
+ clearCache: () => void;
85
+ }> & {
86
+ clearCache: () => void;
87
+ };
25
88
  export declare const allergensReducer: import("redux").Reducer<AllergensState, import("redux").AnyAction>;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.allergensReducer = exports.selectSelectedAllergenNames = exports.selectAllergens = exports.setSelectedAllergens = exports.resetAllergens = exports.fetchAllergens = exports.AllergensActionType = void 0;
4
+ exports.allergensReducer = exports.selectSelectedAllergenNamesMemo = exports.selectSelectedAllergenNames = exports.selectAllergens = exports.setSelectedAllergens = exports.resetAllergens = exports.fetchAllergens = exports.AllergensActionType = void 0;
5
5
  const tslib_1 = require("tslib");
6
6
  const toolkit_1 = require("@reduxjs/toolkit");
7
7
  const types_1 = require("./types");
@@ -65,4 +65,17 @@ const selectSelectedAllergenNames = (state) => {
65
65
  });
66
66
  };
67
67
  exports.selectSelectedAllergenNames = selectSelectedAllergenNames;
68
+ exports.selectSelectedAllergenNamesMemo = (0, toolkit_1.createSelector)((state) => {
69
+ const { entities: allergens, selectedAllergens } = state.allergens;
70
+ return { allergens, selectedAllergens };
71
+ }, ({ allergens, selectedAllergens }) => {
72
+ if (!selectedAllergens)
73
+ return [];
74
+ const selected = selectedAllergens.map(i => {
75
+ var _a;
76
+ const allergen = allergens.find(a => a.allergen_id === i.allergen_id);
77
+ return allergen ? (_a = allergen.name) !== null && _a !== void 0 ? _a : '' : '';
78
+ });
79
+ return selected;
80
+ });
68
81
  exports.allergensReducer = allergensSlice.reducer;
@@ -23,8 +23,7 @@ exports.fetchDeals = (0, toolkit_1.createAsyncThunk)(DealActionType.FetchDeals,
23
23
  try {
24
24
  const { profile } = getState().customer.account;
25
25
  const { customer_id = null } = profile || {};
26
- const deals = yield api.getDeals(customer_id);
27
- return deals;
26
+ return yield api.getDeals(customer_id);
28
27
  }
29
28
  catch (err) {
30
29
  return rejectWithValue(err);
@@ -1,9 +1,14 @@
1
1
  import { AppState } from '../app';
2
- import { CartOwner, GroupOrder, ISOString, SimpleCart, RequestError, RequestStatus, ServiceType, RequestedAt } from '@open-tender/types';
2
+ import { CartOwner, GroupOrder, ISOString, SimpleCart, RequestError, RequestStatus, ServiceType, RequestedAt, GroupOrderGuests } from '@open-tender/types';
3
+ export interface GroupOrderGuestState {
4
+ cartGuestId: number;
5
+ firstName: string;
6
+ lastName: string;
7
+ }
3
8
  export interface GroupOrderState {
4
9
  cart: SimpleCart;
5
- cartGuest: any;
6
- cartGuests: any;
10
+ cartGuest: GroupOrderGuestState | null;
11
+ cartGuests: GroupOrderGuests;
7
12
  cartId: number | null;
8
13
  cartOwner: CartOwner | null;
9
14
  closed: boolean;
@@ -26,7 +31,7 @@ export declare enum GroupOrderActionType {
26
31
  ReloadGuestOrder = "groupOrder/reloadGuestOrder",
27
32
  AddCustomerGroupOrder = "customer/addCustomerGroupOrder"
28
33
  }
29
- export declare const makeCartPayload: (response: GroupOrder, cartGuestId?: number) => {
34
+ export declare const makeCartPayload: (response: GroupOrder, cartGuestId?: number | null) => {
30
35
  cartId: number;
31
36
  token: string;
32
37
  revenueCenterId: number;
@@ -39,7 +44,7 @@ export declare const makeCartPayload: (response: GroupOrder, cartGuestId?: numbe
39
44
  closed: boolean;
40
45
  cartOwner: CartOwner | null;
41
46
  cart: SimpleCart;
42
- cartGuests: import("@open-tender/types").GroupOrderGuests;
47
+ cartGuests: GroupOrderGuests;
43
48
  };
44
49
  export declare const joinGroupOrder: import("@reduxjs/toolkit").AsyncThunk<any, {
45
50
  cart_id: number;
@@ -102,7 +107,7 @@ export declare const resetGroupOrder: import("@reduxjs/toolkit").ActionCreatorWi
102
107
  export declare const selectGroupOrder: (state: AppState) => GroupOrderState;
103
108
  export declare const selectGroupOrderToken: (state: AppState) => string | null;
104
109
  export declare const selectSpendingLimit: (state: AppState) => number | null;
105
- export declare const selectGroupOrderClosed: (state: AppState) => any;
110
+ export declare const selectGroupOrderClosed: (state: AppState) => boolean | null;
106
111
  export declare const selectGroupOrderTests: (state: AppState) => {
107
112
  closed: boolean;
108
113
  pastCutoff: boolean;
@@ -97,14 +97,16 @@ exports.fetchGroupOrder = (0, toolkit_1.createAsyncThunk)(GroupOrderActionType.F
97
97
  }
98
98
  }));
99
99
  exports.updateGroupOrder = (0, toolkit_1.createAsyncThunk)(GroupOrderActionType.UpdateGroupOrder, (_, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
100
- var _a;
101
100
  const { api } = getState().config;
102
101
  if (!api)
103
102
  return;
104
103
  const { cartId, cartGuest } = getState().groupOrder;
104
+ const orderCart = getState().order.cart;
105
+ if (!orderCart || !cartGuest)
106
+ return;
105
107
  try {
106
108
  const data = {
107
- cart: (0, utils_1.makeSimpleCart)((_a = getState().order.cart) !== null && _a !== void 0 ? _a : []),
109
+ cart: (0, utils_1.makeSimpleCart)(orderCart),
108
110
  cart_guest_id: cartGuest.cartGuestId
109
111
  };
110
112
  const response = yield api.putCart(cartId, data);
@@ -22,4 +22,67 @@ export declare const fetchAllergens: import("@reduxjs/toolkit").AsyncThunk<Aller
22
22
  export declare const resetAllergens: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"allergens/resetAllergens">, setSelectedAllergens: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "allergens/setSelectedAllergens">;
23
23
  export declare const selectAllergens: (state: AppState) => AllergensState;
24
24
  export declare const selectSelectedAllergenNames: (state: AppState) => string[];
25
+ export declare const selectSelectedAllergenNamesMemo: ((state: import("redux").EmptyObject & {
26
+ alerts: import("@open-tender/types").Alerts;
27
+ notifications: import("@open-tender/types").Notifications;
28
+ allergens: AllergensState;
29
+ announcements: import("./announcements").AnnouncementsState;
30
+ customer: import("redux").CombinedState<{
31
+ account: import("./customer").AccountState;
32
+ allergens: import("./customer").CustomerAllergensState;
33
+ addresses: import("./customer").CustomerAddressesState;
34
+ communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
35
+ creditCards: import("./customer").CustomerCreditCardsState;
36
+ favorites: import("./customer").CustomerFavoritesState;
37
+ fcmToken: import("./customer").CustomerFcmTokenState;
38
+ giftCards: import("./customer").CustomerGiftCardsState;
39
+ orders: import("./customer").CustomerOrdersState;
40
+ order: import("./customer").CustomerOrderState;
41
+ loyalty: import("./customer").CustomerLoyaltyState;
42
+ groupOrders: import("./customer").CustomerGroupOrdersState;
43
+ houseAccounts: import("./customer").CustomerHouseAccountsState;
44
+ rewards: import("./customer").CustomerRewardsState;
45
+ qrcode: import("./customer").CustomerQRCodeState;
46
+ thanx: import("./customer").CustomerThanxState;
47
+ levelup: import("./customer").CustomerLevelUpState;
48
+ }>;
49
+ signUp: import("./signUp").SignUpState;
50
+ revenueCenters: import("./revenueCenters").RevenueCentersState;
51
+ completedOrders: import("./completedOrders").CompletedOrdersState;
52
+ checkout: import("./checkout").CheckoutState;
53
+ order: import("./order").OrderState;
54
+ orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
55
+ orderRating: import("./orderRating").OrderRatingState;
56
+ deals: import("./deals").DealState;
57
+ confirmation: import("./confirmation").ConfirmationState;
58
+ donations: import("./donations").DonationState;
59
+ guest: import("./guest").GuestState;
60
+ verifyAccount: import("./verifyAccount").VerifyAccountState;
61
+ menu: import("./menu").MenuState;
62
+ resetPassword: import("./resetPassword").ResetPasswordState;
63
+ validTimes: import("./validTimes").ValidTimesState;
64
+ menuItems: import("./menuItems").MenuItemsState;
65
+ menuDisplay: import("./menuDisplay").MenuDisplayState;
66
+ giftCards: import("./giftCards").GiftCardsState;
67
+ groupOrder: import("./groupOrder").GroupOrderState;
68
+ levelup: import("./levelup").LevelupState;
69
+ config: import("./config").ConfigState;
70
+ geolocation: import("./geolocation").GeoLocationState;
71
+ loader: import("./loader").LoaderState;
72
+ qr: import("./qr").QrState;
73
+ misc: import("./misc").MiscState;
74
+ modal: import("@open-tender/types").Modal;
75
+ navSite: import("./navSite").NavSiteState;
76
+ nav: import("./nav").NavState;
77
+ posts: import("./posts").PostsSlice;
78
+ sidebarModal: import("./sidebarModal").SidebarModalState;
79
+ sidebar: import("./sidebar").SidebarState;
80
+ }) => string[]) & import("reselect").OutputSelectorFields<(args_0: {
81
+ allergens: Allergens;
82
+ selectedAllergens: Allergens | null;
83
+ }) => string[], {
84
+ clearCache: () => void;
85
+ }> & {
86
+ clearCache: () => void;
87
+ };
25
88
  export declare const allergensReducer: import("redux").Reducer<AllergensState, import("redux").AnyAction>;
@@ -1,5 +1,5 @@
1
1
  import { __awaiter } from "tslib";
2
- import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
2
+ import { createAsyncThunk, createSelector, createSlice } from '@reduxjs/toolkit';
3
3
  import { ReducerType } from './types';
4
4
  const initialState = {
5
5
  entities: [],
@@ -59,4 +59,17 @@ export const selectSelectedAllergenNames = (state) => {
59
59
  return allergen ? (_a = allergen.name) !== null && _a !== void 0 ? _a : '' : '';
60
60
  });
61
61
  };
62
+ export const selectSelectedAllergenNamesMemo = createSelector((state) => {
63
+ const { entities: allergens, selectedAllergens } = state.allergens;
64
+ return { allergens, selectedAllergens };
65
+ }, ({ allergens, selectedAllergens }) => {
66
+ if (!selectedAllergens)
67
+ return [];
68
+ const selected = selectedAllergens.map(i => {
69
+ var _a;
70
+ const allergen = allergens.find(a => a.allergen_id === i.allergen_id);
71
+ return allergen ? (_a = allergen.name) !== null && _a !== void 0 ? _a : '' : '';
72
+ });
73
+ return selected;
74
+ });
62
75
  export const allergensReducer = allergensSlice.reducer;
@@ -19,8 +19,7 @@ export const fetchDeals = createAsyncThunk(DealActionType.FetchDeals, (_, { getS
19
19
  try {
20
20
  const { profile } = getState().customer.account;
21
21
  const { customer_id = null } = profile || {};
22
- const deals = yield api.getDeals(customer_id);
23
- return deals;
22
+ return yield api.getDeals(customer_id);
24
23
  }
25
24
  catch (err) {
26
25
  return rejectWithValue(err);
@@ -1,9 +1,14 @@
1
1
  import { AppState } from '../app';
2
- import { CartOwner, GroupOrder, ISOString, SimpleCart, RequestError, RequestStatus, ServiceType, RequestedAt } from '@open-tender/types';
2
+ import { CartOwner, GroupOrder, ISOString, SimpleCart, RequestError, RequestStatus, ServiceType, RequestedAt, GroupOrderGuests } from '@open-tender/types';
3
+ export interface GroupOrderGuestState {
4
+ cartGuestId: number;
5
+ firstName: string;
6
+ lastName: string;
7
+ }
3
8
  export interface GroupOrderState {
4
9
  cart: SimpleCart;
5
- cartGuest: any;
6
- cartGuests: any;
10
+ cartGuest: GroupOrderGuestState | null;
11
+ cartGuests: GroupOrderGuests;
7
12
  cartId: number | null;
8
13
  cartOwner: CartOwner | null;
9
14
  closed: boolean;
@@ -26,7 +31,7 @@ export declare enum GroupOrderActionType {
26
31
  ReloadGuestOrder = "groupOrder/reloadGuestOrder",
27
32
  AddCustomerGroupOrder = "customer/addCustomerGroupOrder"
28
33
  }
29
- export declare const makeCartPayload: (response: GroupOrder, cartGuestId?: number) => {
34
+ export declare const makeCartPayload: (response: GroupOrder, cartGuestId?: number | null) => {
30
35
  cartId: number;
31
36
  token: string;
32
37
  revenueCenterId: number;
@@ -39,7 +44,7 @@ export declare const makeCartPayload: (response: GroupOrder, cartGuestId?: numbe
39
44
  closed: boolean;
40
45
  cartOwner: CartOwner | null;
41
46
  cart: SimpleCart;
42
- cartGuests: import("@open-tender/types").GroupOrderGuests;
47
+ cartGuests: GroupOrderGuests;
43
48
  };
44
49
  export declare const joinGroupOrder: import("@reduxjs/toolkit").AsyncThunk<any, {
45
50
  cart_id: number;
@@ -102,7 +107,7 @@ export declare const resetGroupOrder: import("@reduxjs/toolkit").ActionCreatorWi
102
107
  export declare const selectGroupOrder: (state: AppState) => GroupOrderState;
103
108
  export declare const selectGroupOrderToken: (state: AppState) => string | null;
104
109
  export declare const selectSpendingLimit: (state: AppState) => number | null;
105
- export declare const selectGroupOrderClosed: (state: AppState) => any;
110
+ export declare const selectGroupOrderClosed: (state: AppState) => boolean | null;
106
111
  export declare const selectGroupOrderTests: (state: AppState) => {
107
112
  closed: boolean;
108
113
  pastCutoff: boolean;
@@ -93,14 +93,16 @@ export const fetchGroupOrder = createAsyncThunk(GroupOrderActionType.FetchGroupO
93
93
  }
94
94
  }));
95
95
  export const updateGroupOrder = createAsyncThunk(GroupOrderActionType.UpdateGroupOrder, (_, { dispatch, getState, rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {
96
- var _a;
97
96
  const { api } = getState().config;
98
97
  if (!api)
99
98
  return;
100
99
  const { cartId, cartGuest } = getState().groupOrder;
100
+ const orderCart = getState().order.cart;
101
+ if (!orderCart || !cartGuest)
102
+ return;
101
103
  try {
102
104
  const data = {
103
- cart: makeSimpleCart((_a = getState().order.cart) !== null && _a !== void 0 ? _a : []),
105
+ cart: makeSimpleCart(orderCart),
104
106
  cart_guest_id: cartGuest.cartGuestId
105
107
  };
106
108
  const response = yield api.putCart(cartId, data);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-tender/cloud",
3
- "version": "0.1.38",
3
+ "version": "0.1.40",
4
4
  "description": "A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our cloud-based Order API.",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",