@open-tender/cloud 0.0.84 → 0.0.86

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.
@@ -83,208 +83,7 @@ export declare const selectRecaptcha: (state: AppState) => {
83
83
  donations: boolean;
84
84
  giftCards: boolean;
85
85
  } | undefined;
86
- export declare const selectContentSection: (page: keyof ConfigContent) => (state: AppState) => {
87
- addresses: import("@open-tender/types").ConfigContentField;
88
- allergens: import("@open-tender/types").ConfigContentField;
89
- background: string;
90
- content: string;
91
- creditCards: import("@open-tender/types").ConfigContentField;
92
- deals: import("@open-tender/types").ConfigContentField;
93
- displayLogo: boolean;
94
- displayLogoApp: boolean;
95
- displayLogoMobile: boolean;
96
- displayed: string[];
97
- displayedMobile: string[];
98
- favorites: import("@open-tender/types").ConfigContentField;
99
- giftCards: import("@open-tender/types").ConfigContentField;
100
- greeting: string;
101
- groupOrders: import("@open-tender/types").ConfigContentField;
102
- houseAccounts: import("@open-tender/types").ConfigContentField;
103
- levelup: import("@open-tender/types").ConfigContentField;
104
- loyalty: {
105
- signUp: string;
106
- title: string;
107
- subtitle: string;
108
- skip: string;
109
- };
110
- mobile: string;
111
- profile: import("@open-tender/types").ConfigContentField;
112
- punctuation: string;
113
- recentItems: import("@open-tender/types").ConfigContentField;
114
- recentOrders: import("@open-tender/types").ConfigContentField;
115
- rewards: import("@open-tender/types").ConfigContentField;
116
- showFirstName: boolean;
117
- showHero: boolean;
118
- subtitle: string;
119
- thanx: import("@open-tender/types").ConfigContentField;
120
- title: string;
121
- } | {
122
- background: string;
123
- cartErrors: import("@open-tender/types").ConfigContentField;
124
- displayed: string[];
125
- displayedMobile: string[];
126
- loadingMessage: string;
127
- mobile: string;
128
- soldOutMessage: string;
129
- } | import("@open-tender/types").ConfigContentField | {
130
- background: string;
131
- content: string;
132
- mobile: string;
133
- subtitle: string;
134
- title: string;
135
- } | {
136
- background: string;
137
- content: string[];
138
- subtitle: string;
139
- title: string;
140
- } | {
141
- background: string;
142
- content: string;
143
- mobile: string;
144
- subtitle: string;
145
- title: string;
146
- policy: {
147
- content: string[];
148
- subtitle: string;
149
- title: string;
150
- };
151
- } | {
152
- background: string;
153
- content: string;
154
- mobile: string;
155
- subtitle: string;
156
- title: string;
157
- } | {
158
- account: import("@open-tender/types").ConfigContentField;
159
- address: import("@open-tender/types").ConfigContentField;
160
- background: string;
161
- checkTitle: string;
162
- details: import("@open-tender/types").ConfigContentField;
163
- discounts: import("@open-tender/types").ConfigContentField;
164
- giftCards: import("@open-tender/types").ConfigContentField;
165
- guest: import("@open-tender/types").ConfigContentField;
166
- promoCodes: import("@open-tender/types").ConfigContentField;
167
- signUp: import("@open-tender/types").ConfigContentField;
168
- subtitle: string;
169
- surcharges: import("@open-tender/types").ConfigContentField;
170
- tenders: import("@open-tender/types").ConfigContentField;
171
- title: string;
172
- } | {
173
- sections: {
174
- email: import("@open-tender/types").ConfigContentField;
175
- magicLink: {
176
- changeEmail: string;
177
- resend: string;
178
- subtitle: string;
179
- title: string;
180
- };
181
- name: import("@open-tender/types").ConfigContentField;
182
- signIn: import("@open-tender/types").ConfigContentField;
183
- signUp: import("@open-tender/types").ConfigContentField & {
184
- showGuest: boolean;
185
- };
186
- };
187
- } | (import("@open-tender/types").ConfigContentField & {
188
- background: string;
189
- error: string;
190
- }) | (import("@open-tender/types").ConfigContentField & {
191
- background: string;
192
- }) | (import("@open-tender/types").ConfigContentField & {
193
- background: string;
194
- }) | {
195
- background: string;
196
- } | (import("@open-tender/types").ConfigContentField & {
197
- background: string;
198
- }) | (import("@open-tender/types").ConfigContentField & {
199
- background: string;
200
- }) | (import("@open-tender/types").ConfigContentField & {
201
- background: string;
202
- content: string;
203
- displayLogo: boolean;
204
- displayLogoApp: boolean;
205
- displayLogoMobile: boolean;
206
- displayed: string[];
207
- displayedMobile: string[];
208
- mobile: string;
209
- showGuest: boolean;
210
- subtitle: string;
211
- title: string;
212
- }) | (import("@open-tender/types").ConfigContentField & {
213
- background: string;
214
- content: string;
215
- mobile: string;
216
- orderTypes: {
217
- CATERING: import("@open-tender/types").ConfigContentField;
218
- MERCH: import("@open-tender/types").ConfigContentField;
219
- WALKIN: import("@open-tender/types").ConfigContentField;
220
- PICKUP: import("@open-tender/types").ConfigContentField;
221
- DELIVERY: import("@open-tender/types").ConfigContentField;
222
- OUTPOST: import("@open-tender/types").ConfigContentField;
223
- DONATIONS: import("@open-tender/types").ConfigContentField;
224
- GIFT_CARDS: import("@open-tender/types").ConfigContentField;
225
- GROUP: import("@open-tender/types").ConfigContentField;
226
- };
227
- showHero: boolean;
228
- }) | (import("@open-tender/types").ConfigContentField & {
229
- background: string;
230
- content: string;
231
- mobile: string;
232
- }) | (import("@open-tender/types").ConfigContentField & {
233
- back: string;
234
- background: string;
235
- }) | (import("@open-tender/types").ConfigContentField & {
236
- background: string;
237
- content: string;
238
- mobile: string;
239
- orderTypes: {
240
- CATERING: import("@open-tender/types").ConfigContentField;
241
- MERCH: import("@open-tender/types").ConfigContentField;
242
- WALKIN: import("@open-tender/types").ConfigContentField;
243
- PICKUP: import("@open-tender/types").ConfigContentField;
244
- DELIVERY: import("@open-tender/types").ConfigContentField;
245
- OUTPOST: import("@open-tender/types").ConfigContentField;
246
- DONATIONS: import("@open-tender/types").ConfigContentField;
247
- GIFT_CARDS: import("@open-tender/types").ConfigContentField;
248
- GROUP: import("@open-tender/types").ConfigContentField;
249
- };
250
- showDescriptions: boolean;
251
- showDescriptionsMobile: boolean;
252
- showHero: boolean;
253
- }) | (import("@open-tender/types").ConfigContentField & {
254
- background: string;
255
- content: string[];
256
- }) | (import("@open-tender/types").ConfigContentField & {
257
- back: string;
258
- background: string;
259
- }) | (import("@open-tender/types").ConfigContentField & {
260
- background: string;
261
- mobile: string;
262
- statusMessages: {
263
- CLOSED: import("@open-tender/types").ConfigContentField;
264
- CLOSED_TEMPORARILY: import("@open-tender/types").ConfigContentField;
265
- COMING_SOON: import("@open-tender/types").ConfigContentField;
266
- };
267
- }) | (import("@open-tender/types").ConfigContentField & {
268
- loyalty: import("@open-tender/types").ConfigContentField;
269
- rewards: import("@open-tender/types").ConfigContentField;
270
- }) | (import("@open-tender/types").ConfigContentField & {
271
- back: string;
272
- background: string;
273
- }) | {
274
- cart: import("@open-tender/types").ConfigContentField & {
275
- decline: string;
276
- show: boolean;
277
- };
278
- checkout: import("@open-tender/types").ConfigContentField & {
279
- decline: string;
280
- proceed: string;
281
- show: boolean;
282
- };
283
- item: import("@open-tender/types").ConfigContentField & {
284
- decline: string;
285
- show: boolean;
286
- };
287
- } | null;
86
+ export declare const selectContentSection: (page: keyof ConfigContent) => (state: AppState) => ConfigContent[keyof ConfigContent] | undefined;
288
87
  export declare const selectSoldOutMsg: (state: AppState) => string;
289
88
  export declare const selectOutpostName: (state: AppState) => string | undefined;
290
89
  export declare const configReducer: import("redux").Reducer<ConfigState, import("redux").AnyAction>;
@@ -112,7 +112,7 @@ const selectFulfillment = (state) => { var _a; return (_a = state.config.brand)
112
112
  exports.selectFulfillment = selectFulfillment;
113
113
  const selectRecaptcha = (state) => { var _a; return (_a = state.config.settings) === null || _a === void 0 ? void 0 : _a.recaptcha; };
114
114
  exports.selectRecaptcha = selectRecaptcha;
115
- const selectContentSection = (page) => (state) => state.config.content && state.config.content[page];
115
+ const selectContentSection = (page) => (state) => state.config.content ? state.config.content[page] : undefined;
116
116
  exports.selectContentSection = selectContentSection;
117
117
  const selectSoldOutMsg = (state) => {
118
118
  var _a;
@@ -1,5 +1,6 @@
1
1
  import { AppState } from '../../app';
2
- import { GroupOrder, GroupOrders, RequestError, RequestStatus } from '@open-tender/types';
2
+ import { GroupOrder, GroupOrders, OrderItem, RequestError, RequestStatus } from '@open-tender/types';
3
+ import { OrderState } from '../order';
3
4
  export interface CustomerGroupOrdersState {
4
5
  entities: GroupOrders;
5
6
  error: RequestError;
@@ -12,7 +13,6 @@ export interface CustomerGroupOrdersState {
12
13
  export declare enum CustomerGroupOrdersActionType {
13
14
  FetchCustomerGroupOrders = "customer/fetchCustomerGroupOrders",
14
15
  FetchCustomerGroupOrder = "customer/fetchCustomerGroupOrder",
15
- AddCustomerGroupOrder = "customer/addCustomerGroupOrder",
16
16
  RemoveCustomerGroupOrder = "customer/removeCustomerGroupOrder",
17
17
  ReopenGroupOrder = "customer/reopenGroupOrder",
18
18
  UpdateCustomerGroupOrder = "customer/updateCustomerGroupOrder",
@@ -26,13 +26,43 @@ export declare const fetchCustomerGroupOrder: import("@reduxjs/toolkit").AsyncTh
26
26
  state: AppState;
27
27
  rejectValue: RequestError;
28
28
  }>;
29
- export declare const addCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThunk<GroupOrders, {
30
- data: Partial<GroupOrder>;
31
- callback?: (() => void) | undefined;
32
- }, {
33
- state: AppState;
34
- rejectValue: RequestError;
35
- }>;
29
+ export declare const makeCartData: (order: OrderState, data?: Partial<GroupOrder>) => {
30
+ order_id?: string | null | undefined;
31
+ address: import("@open-tender/types").Address | null;
32
+ cart: OrderItem[] | {
33
+ id: number;
34
+ quantity: number | undefined;
35
+ groups: {
36
+ id: number | undefined;
37
+ options: {
38
+ id: number;
39
+ quantity: number | undefined;
40
+ }[];
41
+ }[] | undefined;
42
+ made_for: string;
43
+ notes: string;
44
+ }[];
45
+ cartGuest?: any;
46
+ cartGuests?: any;
47
+ cart_guests?: any;
48
+ cart_id?: number | undefined;
49
+ cartOwner?: import("@open-tender/types").CartOwner | undefined;
50
+ customer?: import("@open-tender/types").CartOwner | undefined;
51
+ closed?: boolean | undefined;
52
+ cutoff_at?: string | undefined;
53
+ error?: import("@open-tender/types").RequestErrorAPI | undefined;
54
+ guest_count?: number | undefined;
55
+ guest_limit?: number | undefined;
56
+ isCartOwner?: boolean | undefined;
57
+ loading?: RequestStatus | undefined;
58
+ requested_at: string | null;
59
+ revenue_center?: import("@open-tender/types").OrderRevenueCenter | undefined;
60
+ revenue_center_id: number | undefined;
61
+ service_type: import("@open-tender/types").ServiceType | null;
62
+ spending_limit: string | null;
63
+ token?: string | undefined;
64
+ spendingLimit?: string | undefined;
65
+ };
36
66
  export declare const removeCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThunk<GroupOrders, {
37
67
  cartId: number;
38
68
  callback?: (() => void) | undefined;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.customerGroupOrdersReducer = exports.selectCustomerGroupOrders = exports.setCustomerGroupOrders = exports.resetCustomerGroupOrdersError = exports.resetCustomerGroupOrders = exports.closeGroupOrder = exports.updateCustomerGroupOrder = exports.reopenGroupOrder = exports.removeCustomerGroupOrder = exports.addCustomerGroupOrder = exports.fetchCustomerGroupOrder = exports.fetchCustomerGroupOrders = exports.CustomerGroupOrdersActionType = void 0;
4
+ exports.customerGroupOrdersReducer = exports.selectCustomerGroupOrders = exports.setCustomerGroupOrders = exports.resetCustomerGroupOrdersError = exports.resetCustomerGroupOrders = exports.closeGroupOrder = exports.updateCustomerGroupOrder = exports.reopenGroupOrder = exports.removeCustomerGroupOrder = exports.makeCartData = exports.fetchCustomerGroupOrder = exports.fetchCustomerGroupOrders = exports.CustomerGroupOrdersActionType = void 0;
5
5
  const tslib_1 = require("tslib");
6
6
  const toolkit_1 = require("@reduxjs/toolkit");
7
7
  const types_1 = require("../types");
@@ -21,7 +21,6 @@ var CustomerGroupOrdersActionType;
21
21
  (function (CustomerGroupOrdersActionType) {
22
22
  CustomerGroupOrdersActionType["FetchCustomerGroupOrders"] = "customer/fetchCustomerGroupOrders";
23
23
  CustomerGroupOrdersActionType["FetchCustomerGroupOrder"] = "customer/fetchCustomerGroupOrder";
24
- CustomerGroupOrdersActionType["AddCustomerGroupOrder"] = "customer/addCustomerGroupOrder";
25
24
  CustomerGroupOrdersActionType["RemoveCustomerGroupOrder"] = "customer/removeCustomerGroupOrder";
26
25
  CustomerGroupOrdersActionType["ReopenGroupOrder"] = "customer/reopenGroupOrder";
27
26
  CustomerGroupOrdersActionType["UpdateCustomerGroupOrder"] = "customer/updateCustomerGroupOrder";
@@ -75,25 +74,7 @@ const makeCartData = (order, data = {}) => {
75
74
  }
76
75
  return Object.assign(Object.assign({}, orderData), data);
77
76
  };
78
- exports.addCustomerGroupOrder = (0, toolkit_1.createAsyncThunk)(CustomerGroupOrdersActionType.AddCustomerGroupOrder, (requestData, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
79
- try {
80
- const api = getState().config.api;
81
- const token = (0, account_1.selectToken)(getState());
82
- if (!token)
83
- throw new Error(types_2.MISSING_CUSTOMER);
84
- const cartData = makeCartData(getState().order, requestData.data);
85
- const response = yield api.postCustomerGroupOrder(token, cartData);
86
- const customer = getState().customer.account.profile;
87
- const payload = Object.assign(Object.assign({}, (0, groupOrder_1.makeCartPayload)(response)), { isCartOwner: true, cartOwner: customer });
88
- if (requestData.callback)
89
- requestData.callback();
90
- return payload;
91
- }
92
- catch (err) {
93
- const error = err;
94
- return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
95
- }
96
- }));
77
+ exports.makeCartData = makeCartData;
97
78
  exports.removeCustomerGroupOrder = (0, toolkit_1.createAsyncThunk)(CustomerGroupOrdersActionType.RemoveCustomerGroupOrder, (requestData, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
98
79
  try {
99
80
  const api = getState().config.api;
@@ -154,7 +135,7 @@ exports.updateCustomerGroupOrder = (0, toolkit_1.createAsyncThunk)(CustomerGroup
154
135
  const token = (0, account_1.selectToken)(getState());
155
136
  if (!token)
156
137
  throw new Error(types_2.MISSING_CUSTOMER);
157
- const cartData = makeCartData(getState().order, requestData.data);
138
+ const cartData = (0, exports.makeCartData)(getState().order, requestData.data);
158
139
  yield api.putCustomerGroupOrder(token, requestData.cartId, cartData);
159
140
  const response = yield api.getCustomerGroupOrder(token, requestData.cartId);
160
141
  const { requestedAt, revenueCenter } = getState().order;
@@ -227,18 +208,6 @@ const customerGroupOrdersSlice = (0, toolkit_1.createSlice)({
227
208
  .addCase(exports.fetchCustomerGroupOrder.rejected, (state, action) => {
228
209
  state.error = action.payload;
229
210
  state.loading = 'idle';
230
- })
231
- .addCase(exports.addCustomerGroupOrder.fulfilled, (state, action) => {
232
- state.entities = action.payload;
233
- state.loading = 'idle';
234
- state.error = null;
235
- })
236
- .addCase(exports.addCustomerGroupOrder.pending, state => {
237
- state.loading = 'pending';
238
- })
239
- .addCase(exports.addCustomerGroupOrder.rejected, (state, action) => {
240
- state.error = action.payload;
241
- state.loading = 'idle';
242
211
  })
243
212
  .addCase(exports.removeCustomerGroupOrder.fulfilled, (state, action) => {
244
213
  state.entities = action.payload;
@@ -23,7 +23,8 @@ export declare enum GroupOrderActionType {
23
23
  JoinGroupOrder = "groupOrder/joinGroupOrder",
24
24
  FetchGroupOrder = "groupOrder/fetchGroupOrder",
25
25
  UpdateGroupOrder = "groupOrder/updateGroupOrder",
26
- ReloadGuestOrder = "groupOrder/reloadGuestOrder"
26
+ ReloadGuestOrder = "groupOrder/reloadGuestOrder",
27
+ AddCustomerGroupOrder = "customer/addCustomerGroupOrder"
27
28
  }
28
29
  export declare const makeCartPayload: (response: GroupOrder, cartGuestId?: number) => {
29
30
  cartId: number;
@@ -60,6 +61,13 @@ export declare const reloadGuestOrder: import("@reduxjs/toolkit").AsyncThunk<voi
60
61
  state: AppState;
61
62
  rejectValue: any;
62
63
  }>;
64
+ export declare const addCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThunk<GroupOrderState, {
65
+ data: Partial<GroupOrder>;
66
+ callback?: (() => void) | undefined;
67
+ }, {
68
+ state: AppState;
69
+ rejectValue: RequestError;
70
+ }>;
63
71
  export declare const resetGroupOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
64
72
  export declare const selectGroupOrder: (state: AppState) => GroupOrderState;
65
73
  export declare const selectGroupOrderToken: (state: AppState) => string | null;
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.groupOrderReducer = exports.selectGroupOrderPrepTimes = exports.selectGroupOrderTests = exports.selectGroupOrderClosed = exports.selectSpendingLimit = exports.selectGroupOrderToken = exports.selectGroupOrder = exports.resetGroupOrder = exports.reloadGuestOrder = exports.updateGroupOrder = exports.fetchGroupOrder = exports.joinGroupOrder = exports.makeCartPayload = exports.GroupOrderActionType = void 0;
3
+ exports.groupOrderReducer = exports.selectGroupOrderPrepTimes = exports.selectGroupOrderTests = exports.selectGroupOrderClosed = exports.selectSpendingLimit = exports.selectGroupOrderToken = exports.selectGroupOrder = exports.resetGroupOrder = exports.addCustomerGroupOrder = exports.reloadGuestOrder = exports.updateGroupOrder = exports.fetchGroupOrder = exports.joinGroupOrder = exports.makeCartPayload = exports.GroupOrderActionType = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  const types_1 = require("./types");
7
+ const types_2 = require("@open-tender/types");
7
8
  const order_1 = require("./order");
8
9
  const utils_1 = require("@open-tender/utils");
10
+ const customer_1 = require("./customer");
9
11
  const initialState = {
10
12
  cartId: null,
11
13
  token: null,
@@ -31,6 +33,7 @@ var GroupOrderActionType;
31
33
  GroupOrderActionType["FetchGroupOrder"] = "groupOrder/fetchGroupOrder";
32
34
  GroupOrderActionType["UpdateGroupOrder"] = "groupOrder/updateGroupOrder";
33
35
  GroupOrderActionType["ReloadGuestOrder"] = "groupOrder/reloadGuestOrder";
36
+ GroupOrderActionType["AddCustomerGroupOrder"] = "customer/addCustomerGroupOrder";
34
37
  })(GroupOrderActionType = exports.GroupOrderActionType || (exports.GroupOrderActionType = {}));
35
38
  const makeCartPayload = (response, cartGuestId) => {
36
39
  const { customer = null, closed, cart_id: cartId, token, cart, revenue_center_id: revenueCenterId, service_type: serviceType, requested_at: requestedAt, cutoff_at: cutoffAt, spending_limit: spendingLimit, guest_limit: guestLimit, guest_count: guestCount, cart_guests: cartGuests } = response;
@@ -129,6 +132,25 @@ exports.reloadGuestOrder = (0, toolkit_1.createAsyncThunk)(GroupOrderActionType.
129
132
  return rejectWithValue(err);
130
133
  }
131
134
  }));
135
+ exports.addCustomerGroupOrder = (0, toolkit_1.createAsyncThunk)(GroupOrderActionType.AddCustomerGroupOrder, (requestData, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
136
+ try {
137
+ const api = getState().config.api;
138
+ const token = (0, customer_1.selectToken)(getState());
139
+ if (!token)
140
+ throw new Error(types_2.MISSING_CUSTOMER);
141
+ const cartData = (0, customer_1.makeCartData)(getState().order, requestData.data);
142
+ const response = yield api.postCustomerGroupOrder(token, cartData);
143
+ const customer = getState().customer.account.profile;
144
+ const payload = Object.assign(Object.assign({}, (0, exports.makeCartPayload)(response)), { isCartOwner: true, cartOwner: customer });
145
+ if (requestData.callback)
146
+ requestData.callback();
147
+ return payload;
148
+ }
149
+ catch (err) {
150
+ const error = err;
151
+ return (0, customer_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
152
+ }
153
+ }));
132
154
  const groupOrderSlice = (0, toolkit_1.createSlice)({
133
155
  name: types_1.ReducerType.GroupOrder,
134
156
  initialState,
@@ -179,6 +201,16 @@ const groupOrderSlice = (0, toolkit_1.createSlice)({
179
201
  .addCase(exports.reloadGuestOrder.rejected, (state, action) => {
180
202
  state.loading = 'idle';
181
203
  state.error = action.payload;
204
+ })
205
+ .addCase(exports.addCustomerGroupOrder.fulfilled, (state, action) => {
206
+ return Object.assign(Object.assign(Object.assign({}, state), action.payload), { loading: 'idle', error: null });
207
+ })
208
+ .addCase(exports.addCustomerGroupOrder.pending, state => {
209
+ state.loading = 'pending';
210
+ })
211
+ .addCase(exports.addCustomerGroupOrder.rejected, (state, action) => {
212
+ state.error = action.payload;
213
+ state.loading = 'idle';
182
214
  });
183
215
  }
184
216
  });
@@ -83,208 +83,7 @@ export declare const selectRecaptcha: (state: AppState) => {
83
83
  donations: boolean;
84
84
  giftCards: boolean;
85
85
  } | undefined;
86
- export declare const selectContentSection: (page: keyof ConfigContent) => (state: AppState) => {
87
- addresses: import("@open-tender/types").ConfigContentField;
88
- allergens: import("@open-tender/types").ConfigContentField;
89
- background: string;
90
- content: string;
91
- creditCards: import("@open-tender/types").ConfigContentField;
92
- deals: import("@open-tender/types").ConfigContentField;
93
- displayLogo: boolean;
94
- displayLogoApp: boolean;
95
- displayLogoMobile: boolean;
96
- displayed: string[];
97
- displayedMobile: string[];
98
- favorites: import("@open-tender/types").ConfigContentField;
99
- giftCards: import("@open-tender/types").ConfigContentField;
100
- greeting: string;
101
- groupOrders: import("@open-tender/types").ConfigContentField;
102
- houseAccounts: import("@open-tender/types").ConfigContentField;
103
- levelup: import("@open-tender/types").ConfigContentField;
104
- loyalty: {
105
- signUp: string;
106
- title: string;
107
- subtitle: string;
108
- skip: string;
109
- };
110
- mobile: string;
111
- profile: import("@open-tender/types").ConfigContentField;
112
- punctuation: string;
113
- recentItems: import("@open-tender/types").ConfigContentField;
114
- recentOrders: import("@open-tender/types").ConfigContentField;
115
- rewards: import("@open-tender/types").ConfigContentField;
116
- showFirstName: boolean;
117
- showHero: boolean;
118
- subtitle: string;
119
- thanx: import("@open-tender/types").ConfigContentField;
120
- title: string;
121
- } | {
122
- background: string;
123
- cartErrors: import("@open-tender/types").ConfigContentField;
124
- displayed: string[];
125
- displayedMobile: string[];
126
- loadingMessage: string;
127
- mobile: string;
128
- soldOutMessage: string;
129
- } | import("@open-tender/types").ConfigContentField | {
130
- background: string;
131
- content: string;
132
- mobile: string;
133
- subtitle: string;
134
- title: string;
135
- } | {
136
- background: string;
137
- content: string[];
138
- subtitle: string;
139
- title: string;
140
- } | {
141
- background: string;
142
- content: string;
143
- mobile: string;
144
- subtitle: string;
145
- title: string;
146
- policy: {
147
- content: string[];
148
- subtitle: string;
149
- title: string;
150
- };
151
- } | {
152
- background: string;
153
- content: string;
154
- mobile: string;
155
- subtitle: string;
156
- title: string;
157
- } | {
158
- account: import("@open-tender/types").ConfigContentField;
159
- address: import("@open-tender/types").ConfigContentField;
160
- background: string;
161
- checkTitle: string;
162
- details: import("@open-tender/types").ConfigContentField;
163
- discounts: import("@open-tender/types").ConfigContentField;
164
- giftCards: import("@open-tender/types").ConfigContentField;
165
- guest: import("@open-tender/types").ConfigContentField;
166
- promoCodes: import("@open-tender/types").ConfigContentField;
167
- signUp: import("@open-tender/types").ConfigContentField;
168
- subtitle: string;
169
- surcharges: import("@open-tender/types").ConfigContentField;
170
- tenders: import("@open-tender/types").ConfigContentField;
171
- title: string;
172
- } | {
173
- sections: {
174
- email: import("@open-tender/types").ConfigContentField;
175
- magicLink: {
176
- changeEmail: string;
177
- resend: string;
178
- subtitle: string;
179
- title: string;
180
- };
181
- name: import("@open-tender/types").ConfigContentField;
182
- signIn: import("@open-tender/types").ConfigContentField;
183
- signUp: import("@open-tender/types").ConfigContentField & {
184
- showGuest: boolean;
185
- };
186
- };
187
- } | (import("@open-tender/types").ConfigContentField & {
188
- background: string;
189
- error: string;
190
- }) | (import("@open-tender/types").ConfigContentField & {
191
- background: string;
192
- }) | (import("@open-tender/types").ConfigContentField & {
193
- background: string;
194
- }) | {
195
- background: string;
196
- } | (import("@open-tender/types").ConfigContentField & {
197
- background: string;
198
- }) | (import("@open-tender/types").ConfigContentField & {
199
- background: string;
200
- }) | (import("@open-tender/types").ConfigContentField & {
201
- background: string;
202
- content: string;
203
- displayLogo: boolean;
204
- displayLogoApp: boolean;
205
- displayLogoMobile: boolean;
206
- displayed: string[];
207
- displayedMobile: string[];
208
- mobile: string;
209
- showGuest: boolean;
210
- subtitle: string;
211
- title: string;
212
- }) | (import("@open-tender/types").ConfigContentField & {
213
- background: string;
214
- content: string;
215
- mobile: string;
216
- orderTypes: {
217
- CATERING: import("@open-tender/types").ConfigContentField;
218
- MERCH: import("@open-tender/types").ConfigContentField;
219
- WALKIN: import("@open-tender/types").ConfigContentField;
220
- PICKUP: import("@open-tender/types").ConfigContentField;
221
- DELIVERY: import("@open-tender/types").ConfigContentField;
222
- OUTPOST: import("@open-tender/types").ConfigContentField;
223
- DONATIONS: import("@open-tender/types").ConfigContentField;
224
- GIFT_CARDS: import("@open-tender/types").ConfigContentField;
225
- GROUP: import("@open-tender/types").ConfigContentField;
226
- };
227
- showHero: boolean;
228
- }) | (import("@open-tender/types").ConfigContentField & {
229
- background: string;
230
- content: string;
231
- mobile: string;
232
- }) | (import("@open-tender/types").ConfigContentField & {
233
- back: string;
234
- background: string;
235
- }) | (import("@open-tender/types").ConfigContentField & {
236
- background: string;
237
- content: string;
238
- mobile: string;
239
- orderTypes: {
240
- CATERING: import("@open-tender/types").ConfigContentField;
241
- MERCH: import("@open-tender/types").ConfigContentField;
242
- WALKIN: import("@open-tender/types").ConfigContentField;
243
- PICKUP: import("@open-tender/types").ConfigContentField;
244
- DELIVERY: import("@open-tender/types").ConfigContentField;
245
- OUTPOST: import("@open-tender/types").ConfigContentField;
246
- DONATIONS: import("@open-tender/types").ConfigContentField;
247
- GIFT_CARDS: import("@open-tender/types").ConfigContentField;
248
- GROUP: import("@open-tender/types").ConfigContentField;
249
- };
250
- showDescriptions: boolean;
251
- showDescriptionsMobile: boolean;
252
- showHero: boolean;
253
- }) | (import("@open-tender/types").ConfigContentField & {
254
- background: string;
255
- content: string[];
256
- }) | (import("@open-tender/types").ConfigContentField & {
257
- back: string;
258
- background: string;
259
- }) | (import("@open-tender/types").ConfigContentField & {
260
- background: string;
261
- mobile: string;
262
- statusMessages: {
263
- CLOSED: import("@open-tender/types").ConfigContentField;
264
- CLOSED_TEMPORARILY: import("@open-tender/types").ConfigContentField;
265
- COMING_SOON: import("@open-tender/types").ConfigContentField;
266
- };
267
- }) | (import("@open-tender/types").ConfigContentField & {
268
- loyalty: import("@open-tender/types").ConfigContentField;
269
- rewards: import("@open-tender/types").ConfigContentField;
270
- }) | (import("@open-tender/types").ConfigContentField & {
271
- back: string;
272
- background: string;
273
- }) | {
274
- cart: import("@open-tender/types").ConfigContentField & {
275
- decline: string;
276
- show: boolean;
277
- };
278
- checkout: import("@open-tender/types").ConfigContentField & {
279
- decline: string;
280
- proceed: string;
281
- show: boolean;
282
- };
283
- item: import("@open-tender/types").ConfigContentField & {
284
- decline: string;
285
- show: boolean;
286
- };
287
- } | null;
86
+ export declare const selectContentSection: (page: keyof ConfigContent) => (state: AppState) => ConfigContent[keyof ConfigContent] | undefined;
288
87
  export declare const selectSoldOutMsg: (state: AppState) => string;
289
88
  export declare const selectOutpostName: (state: AppState) => string | undefined;
290
89
  export declare const configReducer: import("redux").Reducer<ConfigState, import("redux").AnyAction>;
@@ -94,7 +94,7 @@ export const selectOptIns = (state) => {
94
94
  };
95
95
  export const selectFulfillment = (state) => { var _a; return (_a = state.config.brand) === null || _a === void 0 ? void 0 : _a.fulfillment; };
96
96
  export const selectRecaptcha = (state) => { var _a; return (_a = state.config.settings) === null || _a === void 0 ? void 0 : _a.recaptcha; };
97
- export const selectContentSection = (page) => (state) => state.config.content && state.config.content[page];
97
+ export const selectContentSection = (page) => (state) => state.config.content ? state.config.content[page] : undefined;
98
98
  export const selectSoldOutMsg = (state) => {
99
99
  var _a;
100
100
  const { soldOutMessage } = ((_a = state.config.content) === null || _a === void 0 ? void 0 : _a.menu) || {};
@@ -1,5 +1,6 @@
1
1
  import { AppState } from '../../app';
2
- import { GroupOrder, GroupOrders, RequestError, RequestStatus } from '@open-tender/types';
2
+ import { GroupOrder, GroupOrders, OrderItem, RequestError, RequestStatus } from '@open-tender/types';
3
+ import { OrderState } from '../order';
3
4
  export interface CustomerGroupOrdersState {
4
5
  entities: GroupOrders;
5
6
  error: RequestError;
@@ -12,7 +13,6 @@ export interface CustomerGroupOrdersState {
12
13
  export declare enum CustomerGroupOrdersActionType {
13
14
  FetchCustomerGroupOrders = "customer/fetchCustomerGroupOrders",
14
15
  FetchCustomerGroupOrder = "customer/fetchCustomerGroupOrder",
15
- AddCustomerGroupOrder = "customer/addCustomerGroupOrder",
16
16
  RemoveCustomerGroupOrder = "customer/removeCustomerGroupOrder",
17
17
  ReopenGroupOrder = "customer/reopenGroupOrder",
18
18
  UpdateCustomerGroupOrder = "customer/updateCustomerGroupOrder",
@@ -26,13 +26,43 @@ export declare const fetchCustomerGroupOrder: import("@reduxjs/toolkit").AsyncTh
26
26
  state: AppState;
27
27
  rejectValue: RequestError;
28
28
  }>;
29
- export declare const addCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThunk<GroupOrders, {
30
- data: Partial<GroupOrder>;
31
- callback?: (() => void) | undefined;
32
- }, {
33
- state: AppState;
34
- rejectValue: RequestError;
35
- }>;
29
+ export declare const makeCartData: (order: OrderState, data?: Partial<GroupOrder>) => {
30
+ order_id?: string | null | undefined;
31
+ address: import("@open-tender/types").Address | null;
32
+ cart: OrderItem[] | {
33
+ id: number;
34
+ quantity: number | undefined;
35
+ groups: {
36
+ id: number | undefined;
37
+ options: {
38
+ id: number;
39
+ quantity: number | undefined;
40
+ }[];
41
+ }[] | undefined;
42
+ made_for: string;
43
+ notes: string;
44
+ }[];
45
+ cartGuest?: any;
46
+ cartGuests?: any;
47
+ cart_guests?: any;
48
+ cart_id?: number | undefined;
49
+ cartOwner?: import("@open-tender/types").CartOwner | undefined;
50
+ customer?: import("@open-tender/types").CartOwner | undefined;
51
+ closed?: boolean | undefined;
52
+ cutoff_at?: string | undefined;
53
+ error?: import("@open-tender/types").RequestErrorAPI | undefined;
54
+ guest_count?: number | undefined;
55
+ guest_limit?: number | undefined;
56
+ isCartOwner?: boolean | undefined;
57
+ loading?: RequestStatus | undefined;
58
+ requested_at: string | null;
59
+ revenue_center?: import("@open-tender/types").OrderRevenueCenter | undefined;
60
+ revenue_center_id: number | undefined;
61
+ service_type: import("@open-tender/types").ServiceType | null;
62
+ spending_limit: string | null;
63
+ token?: string | undefined;
64
+ spendingLimit?: string | undefined;
65
+ };
36
66
  export declare const removeCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThunk<GroupOrders, {
37
67
  cartId: number;
38
68
  callback?: (() => void) | undefined;
@@ -17,7 +17,6 @@ export var CustomerGroupOrdersActionType;
17
17
  (function (CustomerGroupOrdersActionType) {
18
18
  CustomerGroupOrdersActionType["FetchCustomerGroupOrders"] = "customer/fetchCustomerGroupOrders";
19
19
  CustomerGroupOrdersActionType["FetchCustomerGroupOrder"] = "customer/fetchCustomerGroupOrder";
20
- CustomerGroupOrdersActionType["AddCustomerGroupOrder"] = "customer/addCustomerGroupOrder";
21
20
  CustomerGroupOrdersActionType["RemoveCustomerGroupOrder"] = "customer/removeCustomerGroupOrder";
22
21
  CustomerGroupOrdersActionType["ReopenGroupOrder"] = "customer/reopenGroupOrder";
23
22
  CustomerGroupOrdersActionType["UpdateCustomerGroupOrder"] = "customer/updateCustomerGroupOrder";
@@ -52,7 +51,7 @@ export const fetchCustomerGroupOrder = createAsyncThunk(CustomerGroupOrdersActio
52
51
  return checkAuth(error, dispatch, () => rejectWithValue(error));
53
52
  }
54
53
  }));
55
- const makeCartData = (order, data = {}) => {
54
+ export const makeCartData = (order, data = {}) => {
56
55
  const { address, revenueCenter, requestedAt, serviceType, cart } = order;
57
56
  const orderData = {
58
57
  address,
@@ -71,25 +70,6 @@ const makeCartData = (order, data = {}) => {
71
70
  }
72
71
  return Object.assign(Object.assign({}, orderData), data);
73
72
  };
74
- export const addCustomerGroupOrder = createAsyncThunk(CustomerGroupOrdersActionType.AddCustomerGroupOrder, (requestData, { dispatch, getState, rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {
75
- try {
76
- const api = getState().config.api;
77
- const token = selectToken(getState());
78
- if (!token)
79
- throw new Error(MISSING_CUSTOMER);
80
- const cartData = makeCartData(getState().order, requestData.data);
81
- const response = yield api.postCustomerGroupOrder(token, cartData);
82
- const customer = getState().customer.account.profile;
83
- const payload = Object.assign(Object.assign({}, makeCartPayload(response)), { isCartOwner: true, cartOwner: customer });
84
- if (requestData.callback)
85
- requestData.callback();
86
- return payload;
87
- }
88
- catch (err) {
89
- const error = err;
90
- return checkAuth(error, dispatch, () => rejectWithValue(error));
91
- }
92
- }));
93
73
  export const removeCustomerGroupOrder = createAsyncThunk(CustomerGroupOrdersActionType.RemoveCustomerGroupOrder, (requestData, { dispatch, getState, rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {
94
74
  try {
95
75
  const api = getState().config.api;
@@ -223,18 +203,6 @@ const customerGroupOrdersSlice = createSlice({
223
203
  .addCase(fetchCustomerGroupOrder.rejected, (state, action) => {
224
204
  state.error = action.payload;
225
205
  state.loading = 'idle';
226
- })
227
- .addCase(addCustomerGroupOrder.fulfilled, (state, action) => {
228
- state.entities = action.payload;
229
- state.loading = 'idle';
230
- state.error = null;
231
- })
232
- .addCase(addCustomerGroupOrder.pending, state => {
233
- state.loading = 'pending';
234
- })
235
- .addCase(addCustomerGroupOrder.rejected, (state, action) => {
236
- state.error = action.payload;
237
- state.loading = 'idle';
238
206
  })
239
207
  .addCase(removeCustomerGroupOrder.fulfilled, (state, action) => {
240
208
  state.entities = action.payload;
@@ -23,7 +23,8 @@ export declare enum GroupOrderActionType {
23
23
  JoinGroupOrder = "groupOrder/joinGroupOrder",
24
24
  FetchGroupOrder = "groupOrder/fetchGroupOrder",
25
25
  UpdateGroupOrder = "groupOrder/updateGroupOrder",
26
- ReloadGuestOrder = "groupOrder/reloadGuestOrder"
26
+ ReloadGuestOrder = "groupOrder/reloadGuestOrder",
27
+ AddCustomerGroupOrder = "customer/addCustomerGroupOrder"
27
28
  }
28
29
  export declare const makeCartPayload: (response: GroupOrder, cartGuestId?: number) => {
29
30
  cartId: number;
@@ -60,6 +61,13 @@ export declare const reloadGuestOrder: import("@reduxjs/toolkit").AsyncThunk<voi
60
61
  state: AppState;
61
62
  rejectValue: any;
62
63
  }>;
64
+ export declare const addCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThunk<GroupOrderState, {
65
+ data: Partial<GroupOrder>;
66
+ callback?: (() => void) | undefined;
67
+ }, {
68
+ state: AppState;
69
+ rejectValue: RequestError;
70
+ }>;
63
71
  export declare const resetGroupOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
64
72
  export declare const selectGroupOrder: (state: AppState) => GroupOrderState;
65
73
  export declare const selectGroupOrderToken: (state: AppState) => string | null;
@@ -1,8 +1,13 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
3
3
  import { ReducerType } from './types';
4
+ import { MISSING_CUSTOMER,
5
+ // CartGuests,
6
+ // CartGuest
7
+ } from '@open-tender/types';
4
8
  import { resetOrder, selectTimezone, setCart, setMenuVars } from './order';
5
9
  import { isoToDate, makeSimpleCart, rehydrateCart } from '@open-tender/utils';
10
+ import { checkAuth, makeCartData, selectToken } from './customer';
6
11
  const initialState = {
7
12
  cartId: null,
8
13
  token: null,
@@ -28,6 +33,7 @@ export var GroupOrderActionType;
28
33
  GroupOrderActionType["FetchGroupOrder"] = "groupOrder/fetchGroupOrder";
29
34
  GroupOrderActionType["UpdateGroupOrder"] = "groupOrder/updateGroupOrder";
30
35
  GroupOrderActionType["ReloadGuestOrder"] = "groupOrder/reloadGuestOrder";
36
+ GroupOrderActionType["AddCustomerGroupOrder"] = "customer/addCustomerGroupOrder";
31
37
  })(GroupOrderActionType || (GroupOrderActionType = {}));
32
38
  export const makeCartPayload = (response, cartGuestId) => {
33
39
  const { customer = null, closed, cart_id: cartId, token, cart, revenue_center_id: revenueCenterId, service_type: serviceType, requested_at: requestedAt, cutoff_at: cutoffAt, spending_limit: spendingLimit, guest_limit: guestLimit, guest_count: guestCount, cart_guests: cartGuests } = response;
@@ -125,6 +131,25 @@ export const reloadGuestOrder = createAsyncThunk(GroupOrderActionType.ReloadGues
125
131
  return rejectWithValue(err);
126
132
  }
127
133
  }));
134
+ export const addCustomerGroupOrder = createAsyncThunk(GroupOrderActionType.AddCustomerGroupOrder, (requestData, { dispatch, getState, rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {
135
+ try {
136
+ const api = getState().config.api;
137
+ const token = selectToken(getState());
138
+ if (!token)
139
+ throw new Error(MISSING_CUSTOMER);
140
+ const cartData = makeCartData(getState().order, requestData.data);
141
+ const response = yield api.postCustomerGroupOrder(token, cartData);
142
+ const customer = getState().customer.account.profile;
143
+ const payload = Object.assign(Object.assign({}, makeCartPayload(response)), { isCartOwner: true, cartOwner: customer });
144
+ if (requestData.callback)
145
+ requestData.callback();
146
+ return payload;
147
+ }
148
+ catch (err) {
149
+ const error = err;
150
+ return checkAuth(error, dispatch, () => rejectWithValue(error));
151
+ }
152
+ }));
128
153
  const groupOrderSlice = createSlice({
129
154
  name: ReducerType.GroupOrder,
130
155
  initialState,
@@ -175,6 +200,16 @@ const groupOrderSlice = createSlice({
175
200
  .addCase(reloadGuestOrder.rejected, (state, action) => {
176
201
  state.loading = 'idle';
177
202
  state.error = action.payload;
203
+ })
204
+ .addCase(addCustomerGroupOrder.fulfilled, (state, action) => {
205
+ return Object.assign(Object.assign(Object.assign({}, state), action.payload), { loading: 'idle', error: null });
206
+ })
207
+ .addCase(addCustomerGroupOrder.pending, state => {
208
+ state.loading = 'pending';
209
+ })
210
+ .addCase(addCustomerGroupOrder.rejected, (state, action) => {
211
+ state.error = action.payload;
212
+ state.loading = 'idle';
178
213
  });
179
214
  }
180
215
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-tender/cloud",
3
- "version": "0.0.84",
3
+ "version": "0.0.86",
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",