@open-tender/cloud 0.1.103 → 0.1.105

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.
Files changed (47) hide show
  1. package/dist/cjs/app/hooks.d.ts +1 -0
  2. package/dist/cjs/app/store.d.ts +3 -0
  3. package/dist/cjs/app/store.js +1 -0
  4. package/dist/cjs/services/api.d.ts +1 -0
  5. package/dist/cjs/services/api.js +3 -0
  6. package/dist/cjs/slices/allergens.d.ts +1 -0
  7. package/dist/cjs/slices/announcements.d.ts +2 -0
  8. package/dist/cjs/slices/checkout.d.ts +2 -2
  9. package/dist/cjs/slices/checkout.js +3 -2
  10. package/dist/cjs/slices/config.d.ts +1 -0
  11. package/dist/cjs/slices/customer/creditCards.d.ts +1 -0
  12. package/dist/cjs/slices/customer/loyalty.d.ts +2 -0
  13. package/dist/cjs/slices/customer/order.d.ts +1 -0
  14. package/dist/cjs/slices/customer/tpls.d.ts +3 -0
  15. package/dist/cjs/slices/groupOrder.d.ts +4 -0
  16. package/dist/cjs/slices/index.d.ts +1 -0
  17. package/dist/cjs/slices/index.js +1 -0
  18. package/dist/cjs/slices/order.d.ts +3 -0
  19. package/dist/cjs/slices/quote.d.ts +98 -0
  20. package/dist/cjs/slices/quote.js +65 -0
  21. package/dist/cjs/slices/tags.d.ts +1 -0
  22. package/dist/cjs/slices/types.d.ts +1 -0
  23. package/dist/cjs/slices/types.js +1 -0
  24. package/dist/esm/app/hooks.d.ts +1 -0
  25. package/dist/esm/app/store.d.ts +3 -0
  26. package/dist/esm/app/store.js +2 -1
  27. package/dist/esm/services/api.d.ts +1 -0
  28. package/dist/esm/services/api.js +3 -0
  29. package/dist/esm/slices/allergens.d.ts +1 -0
  30. package/dist/esm/slices/announcements.d.ts +2 -0
  31. package/dist/esm/slices/checkout.d.ts +2 -2
  32. package/dist/esm/slices/checkout.js +3 -2
  33. package/dist/esm/slices/config.d.ts +1 -0
  34. package/dist/esm/slices/customer/creditCards.d.ts +1 -0
  35. package/dist/esm/slices/customer/loyalty.d.ts +2 -0
  36. package/dist/esm/slices/customer/order.d.ts +1 -0
  37. package/dist/esm/slices/customer/tpls.d.ts +3 -0
  38. package/dist/esm/slices/groupOrder.d.ts +4 -0
  39. package/dist/esm/slices/index.d.ts +1 -0
  40. package/dist/esm/slices/index.js +1 -0
  41. package/dist/esm/slices/order.d.ts +3 -0
  42. package/dist/esm/slices/quote.d.ts +98 -0
  43. package/dist/esm/slices/quote.js +61 -0
  44. package/dist/esm/slices/tags.d.ts +1 -0
  45. package/dist/esm/slices/types.d.ts +1 -0
  46. package/dist/esm/slices/types.js +1 -0
  47. package/package.json +1 -1
@@ -49,6 +49,7 @@ export declare const useAppDispatch: () => import("redux-thunk").ThunkDispatch<i
49
49
  orderRating: import("..").OrderRatingState;
50
50
  posts: import("..").PostsSlice;
51
51
  qr: import("..").QrState;
52
+ quote: import("..").QuoteState;
52
53
  resetPassword: import("..").ResetPasswordState;
53
54
  revenueCenters: import("..").RevenueCentersState;
54
55
  sidebar: import("..").SidebarState;
@@ -48,6 +48,7 @@ export declare const appReducer: import("redux").Reducer<import("redux").Combine
48
48
  orderRating: import("../slices").OrderRatingState;
49
49
  posts: import("../slices").PostsSlice;
50
50
  qr: import("../slices").QrState;
51
+ quote: import("../slices").QuoteState;
51
52
  resetPassword: import("../slices").ResetPasswordState;
52
53
  revenueCenters: import("../slices").RevenueCentersState;
53
54
  sidebar: import("../slices").SidebarState;
@@ -108,6 +109,7 @@ declare const store: import("@reduxjs/toolkit/dist/configureStore").ToolkitStore
108
109
  orderRating: import("../slices").OrderRatingState;
109
110
  posts: import("../slices").PostsSlice;
110
111
  qr: import("../slices").QrState;
112
+ quote: import("../slices").QuoteState;
111
113
  resetPassword: import("../slices").ResetPasswordState;
112
114
  revenueCenters: import("../slices").RevenueCentersState;
113
115
  sidebar: import("../slices").SidebarState;
@@ -166,6 +168,7 @@ declare const store: import("@reduxjs/toolkit/dist/configureStore").ToolkitStore
166
168
  orderRating: import("../slices").OrderRatingState;
167
169
  posts: import("../slices").PostsSlice;
168
170
  qr: import("../slices").QrState;
171
+ quote: import("../slices").QuoteState;
169
172
  resetPassword: import("../slices").ResetPasswordState;
170
173
  revenueCenters: import("../slices").RevenueCentersState;
171
174
  sidebar: import("../slices").SidebarState;
@@ -34,6 +34,7 @@ exports.appReducer = (0, toolkit_1.combineReducers)({
34
34
  [types_1.ReducerType.OrderRating]: slices_1.orderRatingReducer,
35
35
  [types_1.ReducerType.Posts]: slices_1.postsReducer,
36
36
  [types_1.ReducerType.Qr]: slices_1.qrReducer,
37
+ [types_1.ReducerType.Quote]: slices_1.quoteReducer,
37
38
  [types_1.ReducerType.ResetPassword]: slices_1.resetPasswordReducer,
38
39
  [types_1.ReducerType.RevenueCenters]: slices_1.revenueCentersReducer,
39
40
  [types_1.ReducerType.Sidebar]: slices_1.sidebarReducer,
@@ -122,6 +122,7 @@ declare class OpenTenderAPI {
122
122
  postPointsShopReward(token: string, rewardId: string): Promise<unknown>;
123
123
  getCustomerOrders(token: string, limit: number, timing: string): Promise<unknown>;
124
124
  getCustomerOrder(token: string, orderId: number): Promise<unknown>;
125
+ getQuote(token: string | null, orderUuid: string): Promise<unknown>;
125
126
  postCustomerGroupOrder(token: string, data: any): Promise<GroupOrder | null | undefined>;
126
127
  getCustomerGroupOrders(token: string): Promise<GroupOrdersExpanded | null | undefined>;
127
128
  getCustomerGroupOrder(token: string, cartId: number): Promise<GroupOrder | null | undefined>;
@@ -577,6 +577,9 @@ class OpenTenderAPI {
577
577
  getCustomerOrder(token, orderId) {
578
578
  return this.request(`/customer/orders/${orderId}`, 'GET', null, null, token);
579
579
  }
580
+ getQuote(token, orderUuid) {
581
+ return this.request(`/orders/uuid/${orderUuid}`, 'GET', null, null, token);
582
+ }
580
583
  postCustomerGroupOrder(token, data) {
581
584
  return this.request(`/customer/carts`, 'POST', data, null, token);
582
585
  }
@@ -76,6 +76,7 @@ export declare const selectSelectedAllergenNames: ((state: import("redux").Empty
76
76
  orderRating: import("./orderRating").OrderRatingState;
77
77
  posts: import("./posts").PostsSlice;
78
78
  qr: import("./qr").QrState;
79
+ quote: import("./quote").QuoteState;
79
80
  resetPassword: import("./resetPassword").ResetPasswordState;
80
81
  revenueCenters: import("./revenueCenters").RevenueCentersState;
81
82
  sidebar: import("./sidebar").SidebarState;
@@ -73,6 +73,7 @@ export declare const selectAnnouncementsPage: (page: AnnouncementPageType) => ((
73
73
  orderRating: import("./orderRating").OrderRatingState;
74
74
  posts: import("./posts").PostsSlice;
75
75
  qr: import("./qr").QrState;
76
+ quote: import("./quote").QuoteState;
76
77
  resetPassword: import("./resetPassword").ResetPasswordState;
77
78
  revenueCenters: import("./revenueCenters").RevenueCentersState;
78
79
  sidebar: import("./sidebar").SidebarState;
@@ -150,6 +151,7 @@ export declare const selectHasAnnouncementsPage: (page: AnnouncementPageType) =>
150
151
  orderRating: import("./orderRating").OrderRatingState;
151
152
  posts: import("./posts").PostsSlice;
152
153
  qr: import("./qr").QrState;
154
+ quote: import("./quote").QuoteState;
153
155
  resetPassword: import("./resetPassword").ResetPasswordState;
154
156
  revenueCenters: import("./revenueCenters").RevenueCentersState;
155
157
  sidebar: import("./sidebar").SidebarState;
@@ -29,8 +29,8 @@ export declare const validateOrder: import("@reduxjs/toolkit").AsyncThunk<{
29
29
  rejectedMeta?: unknown;
30
30
  }>;
31
31
  export declare const submitOrder: import("@reduxjs/toolkit").AsyncThunk<Order, {
32
- save?: boolean | undefined;
33
- }, {
32
+ save: boolean;
33
+ } | undefined, {
34
34
  state: AppState;
35
35
  rejectValue: CheckoutErrorMessages;
36
36
  dispatch?: Dispatch<import("redux").AnyAction> | undefined;
@@ -141,7 +141,7 @@ exports.validateOrder = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.Valid
141
141
  return rejectWithValue(errors);
142
142
  }
143
143
  }));
144
- exports.submitOrder = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.SubmitOrder, ({ save }, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
144
+ exports.submitOrder = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.SubmitOrder, (args, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
145
145
  const { api } = getState().config;
146
146
  if (!api)
147
147
  return;
@@ -151,7 +151,8 @@ exports.submitOrder = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.SubmitO
151
151
  args: { text: 'Submitting your order...' }
152
152
  };
153
153
  dispatch((0, order_1.setAlert)(alert));
154
- const preparedOrder = assembleOrder(getState(), save || false);
154
+ const { save = false } = args || {};
155
+ const preparedOrder = assembleOrder(getState(), save);
155
156
  if (!preparedOrder) {
156
157
  return dispatch((0, order_1.setAlert)({ type: 'close' }));
157
158
  }
@@ -132,6 +132,7 @@ export declare const selectOptIns: ((state: import("redux").EmptyObject & {
132
132
  orderRating: import("./orderRating").OrderRatingState;
133
133
  posts: import("./posts").PostsSlice;
134
134
  qr: import("./qr").QrState;
135
+ quote: import("./quote").QuoteState;
135
136
  resetPassword: import("./resetPassword").ResetPasswordState;
136
137
  revenueCenters: import("./revenueCenters").RevenueCentersState;
137
138
  sidebar: import("./sidebar").SidebarState;
@@ -115,6 +115,7 @@ export declare const selectCustomerCreditCardsForPayment: ((state: import("redux
115
115
  orderRating: import("..").OrderRatingState;
116
116
  posts: import("..").PostsSlice;
117
117
  qr: import("..").QrState;
118
+ quote: import("..").QuoteState;
118
119
  resetPassword: import("..").ResetPasswordState;
119
120
  revenueCenters: import("..").RevenueCentersState;
120
121
  sidebar: import("..").SidebarState;
@@ -72,6 +72,7 @@ export declare const selectCustomerLoyaltyProgram: ((state: import("redux").Empt
72
72
  orderRating: import("..").OrderRatingState;
73
73
  posts: import("..").PostsSlice;
74
74
  qr: import("..").QrState;
75
+ quote: import("..").QuoteState;
75
76
  resetPassword: import("..").ResetPasswordState;
76
77
  revenueCenters: import("..").RevenueCentersState;
77
78
  sidebar: import("..").SidebarState;
@@ -147,6 +148,7 @@ export declare const selectCustomerPointsProgram: (orderType: OrderType | null)
147
148
  orderRating: import("..").OrderRatingState;
148
149
  posts: import("..").PostsSlice;
149
150
  qr: import("..").QrState;
151
+ quote: import("..").QuoteState;
150
152
  resetPassword: import("..").ResetPasswordState;
151
153
  revenueCenters: import("..").RevenueCentersState;
152
154
  sidebar: import("..").SidebarState;
@@ -82,6 +82,7 @@ export declare const selectCustomerOrder: ((state: import("redux").EmptyObject &
82
82
  orderRating: import("..").OrderRatingState;
83
83
  posts: import("..").PostsSlice;
84
84
  qr: import("..").QrState;
85
+ quote: import("..").QuoteState;
85
86
  resetPassword: import("..").ResetPasswordState;
86
87
  revenueCenters: import("..").RevenueCentersState;
87
88
  sidebar: import("..").SidebarState;
@@ -69,6 +69,7 @@ export declare const selectCustomerTplsPoints: ((state: import("redux").EmptyObj
69
69
  orderRating: import("..").OrderRatingState;
70
70
  posts: import("..").PostsSlice;
71
71
  qr: import("..").QrState;
72
+ quote: import("..").QuoteState;
72
73
  resetPassword: import("..").ResetPasswordState;
73
74
  revenueCenters: import("..").RevenueCentersState;
74
75
  sidebar: import("..").SidebarState;
@@ -132,6 +133,7 @@ export declare const selectCustomerTplsRewards: ((state: import("redux").EmptyOb
132
133
  orderRating: import("..").OrderRatingState;
133
134
  posts: import("..").PostsSlice;
134
135
  qr: import("..").QrState;
136
+ quote: import("..").QuoteState;
135
137
  resetPassword: import("..").ResetPasswordState;
136
138
  revenueCenters: import("..").RevenueCentersState;
137
139
  sidebar: import("..").SidebarState;
@@ -195,6 +197,7 @@ export declare const selectCustomerTplsProgress: ((state: import("redux").EmptyO
195
197
  orderRating: import("..").OrderRatingState;
196
198
  posts: import("..").PostsSlice;
197
199
  qr: import("..").QrState;
200
+ quote: import("..").QuoteState;
198
201
  resetPassword: import("..").ResetPasswordState;
199
202
  revenueCenters: import("..").RevenueCentersState;
200
203
  sidebar: import("..").SidebarState;
@@ -155,6 +155,7 @@ export declare const selectSpendingLimit: ((state: import("redux").EmptyObject &
155
155
  orderRating: import("./orderRating").OrderRatingState;
156
156
  posts: import("./posts").PostsSlice;
157
157
  qr: import("./qr").QrState;
158
+ quote: import("./quote").QuoteState;
158
159
  resetPassword: import("./resetPassword").ResetPasswordState;
159
160
  revenueCenters: import("./revenueCenters").RevenueCentersState;
160
161
  sidebar: import("./sidebar").SidebarState;
@@ -221,6 +222,7 @@ export declare const selectGroupOrderClosed: ((state: import("redux").EmptyObjec
221
222
  orderRating: import("./orderRating").OrderRatingState;
222
223
  posts: import("./posts").PostsSlice;
223
224
  qr: import("./qr").QrState;
225
+ quote: import("./quote").QuoteState;
224
226
  resetPassword: import("./resetPassword").ResetPasswordState;
225
227
  revenueCenters: import("./revenueCenters").RevenueCentersState;
226
228
  sidebar: import("./sidebar").SidebarState;
@@ -289,6 +291,7 @@ export declare const selectGroupOrderTests: ((state: import("redux").EmptyObject
289
291
  orderRating: import("./orderRating").OrderRatingState;
290
292
  posts: import("./posts").PostsSlice;
291
293
  qr: import("./qr").QrState;
294
+ quote: import("./quote").QuoteState;
292
295
  resetPassword: import("./resetPassword").ResetPasswordState;
293
296
  revenueCenters: import("./revenueCenters").RevenueCentersState;
294
297
  sidebar: import("./sidebar").SidebarState;
@@ -366,6 +369,7 @@ export declare const selectGroupOrderPrepTimes: ((state: import("redux").EmptyOb
366
369
  orderRating: import("./orderRating").OrderRatingState;
367
370
  posts: import("./posts").PostsSlice;
368
371
  qr: import("./qr").QrState;
372
+ quote: import("./quote").QuoteState;
369
373
  resetPassword: import("./resetPassword").ResetPasswordState;
370
374
  revenueCenters: import("./revenueCenters").RevenueCentersState;
371
375
  sidebar: import("./sidebar").SidebarState;
@@ -27,6 +27,7 @@ export * from './orderFulfillment';
27
27
  export * from './orderRating';
28
28
  export * from './posts';
29
29
  export * from './qr';
30
+ export * from './quote';
30
31
  export * from './resetPassword';
31
32
  export * from './revenueCenters';
32
33
  export * from './sidebar';
@@ -30,6 +30,7 @@ tslib_1.__exportStar(require("./orderFulfillment"), exports);
30
30
  tslib_1.__exportStar(require("./orderRating"), exports);
31
31
  tslib_1.__exportStar(require("./posts"), exports);
32
32
  tslib_1.__exportStar(require("./qr"), exports);
33
+ tslib_1.__exportStar(require("./quote"), exports);
33
34
  tslib_1.__exportStar(require("./resetPassword"), exports);
34
35
  tslib_1.__exportStar(require("./revenueCenters"), exports);
35
36
  tslib_1.__exportStar(require("./sidebar"), exports);
@@ -177,6 +177,7 @@ export declare const selectOrderLimits: ((state: import("redux").EmptyObject & {
177
177
  orderRating: import("./orderRating").OrderRatingState;
178
178
  posts: import("./posts").PostsSlice;
179
179
  qr: import("./qr").QrState;
180
+ quote: import("./quote").QuoteState;
180
181
  resetPassword: import("./resetPassword").ResetPasswordState;
181
182
  revenueCenters: import("./revenueCenters").RevenueCentersState;
182
183
  sidebar: import("./sidebar").SidebarState;
@@ -251,6 +252,7 @@ export declare const selectCartIds: ((state: import("redux").EmptyObject & {
251
252
  orderRating: import("./orderRating").OrderRatingState;
252
253
  posts: import("./posts").PostsSlice;
253
254
  qr: import("./qr").QrState;
255
+ quote: import("./quote").QuoteState;
254
256
  resetPassword: import("./resetPassword").ResetPasswordState;
255
257
  revenueCenters: import("./revenueCenters").RevenueCentersState;
256
258
  sidebar: import("./sidebar").SidebarState;
@@ -320,6 +322,7 @@ export declare const selectMenuVars: ((state: import("redux").EmptyObject & {
320
322
  orderRating: import("./orderRating").OrderRatingState;
321
323
  posts: import("./posts").PostsSlice;
322
324
  qr: import("./qr").QrState;
325
+ quote: import("./quote").QuoteState;
323
326
  resetPassword: import("./resetPassword").ResetPasswordState;
324
327
  revenueCenters: import("./revenueCenters").RevenueCentersState;
325
328
  sidebar: import("./sidebar").SidebarState;
@@ -0,0 +1,98 @@
1
+ import { Order, RequestError, RequestStatus } from '@open-tender/types';
2
+ import { AppState } from '../app';
3
+ export interface QuoteState {
4
+ entity: Order | null;
5
+ error: RequestError;
6
+ loading: RequestStatus;
7
+ }
8
+ export declare enum QuoteActionType {
9
+ FetchQuote = "customer/fetchQuote"
10
+ }
11
+ export declare const fetchQuote: import("@reduxjs/toolkit").AsyncThunk<Order, string, {
12
+ state: AppState;
13
+ rejectValue: RequestError;
14
+ dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
15
+ extra?: unknown;
16
+ serializedErrorType?: unknown;
17
+ pendingMeta?: unknown;
18
+ fulfilledMeta?: unknown;
19
+ rejectedMeta?: unknown;
20
+ }>;
21
+ export declare const resetQuote: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"quote/resetQuote">, resetQuoteError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"quote/resetQuoteError">, setQuote: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "quote/setQuote">;
22
+ export declare const selectQuote: ((state: import("redux").EmptyObject & {
23
+ alerts: import("@open-tender/types").Alerts;
24
+ allergens: import("./allergens").AllergensState;
25
+ announcements: import("./announcements").AnnouncementsState;
26
+ checkout: import("./checkout").CheckoutState;
27
+ completedOrders: import("./completedOrders").CompletedOrdersState;
28
+ config: import("./config").ConfigState;
29
+ confirmation: import("./confirmation").ConfirmationState;
30
+ customer: import("redux").CombinedState<{
31
+ account: import("./customer").AccountState;
32
+ communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
33
+ creditCards: import("./customer").CustomerCreditCardsState;
34
+ allergens: import("./customer").CustomerAllergensState;
35
+ addresses: import("./customer").CustomerAddressesState;
36
+ favorites: import("./customer").CustomerFavoritesState;
37
+ fcmToken: import("./customer").CustomerFcmTokenState;
38
+ giftCards: import("./customer").CustomerGiftCardsState;
39
+ groupOrders: import("./customer").CustomerGroupOrdersState;
40
+ houseAccounts: import("./customer").CustomerHouseAccountsState;
41
+ loyalty: import("./customer").CustomerLoyaltyState;
42
+ order: import("./customer").CustomerOrderState;
43
+ orders: import("./customer").CustomerOrdersState;
44
+ pointsShop: import("./customer").PointsShopState;
45
+ qrcode: import("./customer").CustomerQRCodeState;
46
+ rewards: import("./customer").CustomerRewardsState;
47
+ thanx: import("./customer").CustomerThanxState;
48
+ tpls: import("./customer").CustomerTplsState;
49
+ }>;
50
+ deals: import("./deals").DealsState;
51
+ donations: import("./donations").DonationState;
52
+ geolocation: import("./geolocation").GeoLocationState;
53
+ giftCards: import("./giftCards").GiftCardsState;
54
+ groupOrder: import("./groupOrder").GroupOrderState;
55
+ guest: import("./guest").GuestState;
56
+ loader: import("./loader").LoaderState;
57
+ menu: import("./menu").MenuState;
58
+ menuDisplay: import("./menuDisplay").MenuDisplayState;
59
+ menuItems: import("./menuItems").MenuItemsState;
60
+ modal: import("@open-tender/types").Modal;
61
+ misc: import("./misc").MiscState;
62
+ nav: import("./nav").NavState;
63
+ navSite: import("./navSite").NavSiteState;
64
+ notifications: import("@open-tender/types").Notifications;
65
+ oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
66
+ order: import("./order").OrderState;
67
+ orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
68
+ orderRating: import("./orderRating").OrderRatingState;
69
+ posts: import("./posts").PostsSlice;
70
+ qr: import("./qr").QrState;
71
+ quote: QuoteState;
72
+ resetPassword: import("./resetPassword").ResetPasswordState;
73
+ revenueCenters: import("./revenueCenters").RevenueCentersState;
74
+ sidebar: import("./sidebar").SidebarState;
75
+ sidebarModal: import("./sidebarModal").SidebarModalState;
76
+ signUp: import("./signUp").SignUpState;
77
+ tags: import("./tags").TagsState;
78
+ terms: import("./terms").TermsSlice;
79
+ validTimes: import("./validTimes").ValidTimesState;
80
+ verifyAccount: import("./verifyAccount").VerifyAccountState;
81
+ }) => {
82
+ order: Order | null;
83
+ loading: RequestStatus;
84
+ error: RequestError;
85
+ }) & import("reselect").OutputSelectorFields<(args_0: {
86
+ order: Order | null;
87
+ loading: RequestStatus;
88
+ error: RequestError;
89
+ }) => {
90
+ order: Order | null;
91
+ loading: RequestStatus;
92
+ error: RequestError;
93
+ }, {
94
+ clearCache: () => void;
95
+ }> & {
96
+ clearCache: () => void;
97
+ };
98
+ export declare const quoteReducer: import("redux").Reducer<QuoteState, import("redux").AnyAction>;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.quoteReducer = exports.selectQuote = exports.setQuote = exports.resetQuoteError = exports.resetQuote = exports.fetchQuote = exports.QuoteActionType = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const toolkit_1 = require("@reduxjs/toolkit");
7
+ const customer_1 = require("./customer");
8
+ const types_1 = require("./types");
9
+ const initialState = {
10
+ entity: null,
11
+ error: null,
12
+ loading: 'idle'
13
+ };
14
+ var QuoteActionType;
15
+ (function (QuoteActionType) {
16
+ QuoteActionType["FetchQuote"] = "customer/fetchQuote";
17
+ })(QuoteActionType = exports.QuoteActionType || (exports.QuoteActionType = {}));
18
+ exports.fetchQuote = (0, toolkit_1.createAsyncThunk)(QuoteActionType.FetchQuote, (orderUuid, { getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
19
+ try {
20
+ const api = getState().config.api;
21
+ const token = (0, customer_1.selectToken)(getState());
22
+ return yield api.getQuote(token, orderUuid);
23
+ }
24
+ catch (err) {
25
+ return rejectWithValue(err);
26
+ }
27
+ }));
28
+ const quoteSlice = (0, toolkit_1.createSlice)({
29
+ name: types_1.ReducerType.Quote,
30
+ initialState,
31
+ reducers: {
32
+ resetQuote: () => initialState,
33
+ resetQuoteError: state => {
34
+ state.error = null;
35
+ state.loading = 'idle';
36
+ },
37
+ setQuote: (state, action) => {
38
+ state.entity = action.payload;
39
+ state.error = null;
40
+ }
41
+ },
42
+ extraReducers: builder => {
43
+ builder
44
+ .addCase(exports.fetchQuote.fulfilled, (state, action) => {
45
+ state.entity = action.payload;
46
+ state.loading = 'idle';
47
+ state.error = null;
48
+ })
49
+ .addCase(exports.fetchQuote.pending, state => {
50
+ state.loading = 'pending';
51
+ })
52
+ .addCase(exports.fetchQuote.rejected, (state, action) => {
53
+ state.error = action.payload;
54
+ state.loading = 'idle';
55
+ });
56
+ }
57
+ });
58
+ _a = quoteSlice.actions, exports.resetQuote = _a.resetQuote, exports.resetQuoteError = _a.resetQuoteError, exports.setQuote = _a.setQuote;
59
+ exports.selectQuote = (0, toolkit_1.createSelector)((state) => {
60
+ const { entity: order, loading, error } = state.quote;
61
+ return { order, loading, error };
62
+ }, ({ order, loading, error }) => {
63
+ return { order, loading, error };
64
+ });
65
+ exports.quoteReducer = quoteSlice.reducer;
@@ -76,6 +76,7 @@ export declare const selectSelectedTagNames: ((state: import("redux").EmptyObjec
76
76
  orderRating: import("./orderRating").OrderRatingState;
77
77
  posts: import("./posts").PostsSlice;
78
78
  qr: import("./qr").QrState;
79
+ quote: import("./quote").QuoteState;
79
80
  resetPassword: import("./resetPassword").ResetPasswordState;
80
81
  revenueCenters: import("./revenueCenters").RevenueCentersState;
81
82
  sidebar: import("./sidebar").SidebarState;
@@ -41,6 +41,7 @@ export declare enum ReducerType {
41
41
  PointsShop = "pointsShop",
42
42
  Qr = "qr",
43
43
  QRCode = "qrcode",
44
+ Quote = "quote",
44
45
  ResetPassword = "resetPassword",
45
46
  RevenueCenters = "revenueCenters",
46
47
  Rewards = "rewards",
@@ -45,6 +45,7 @@ var ReducerType;
45
45
  ReducerType["PointsShop"] = "pointsShop";
46
46
  ReducerType["Qr"] = "qr";
47
47
  ReducerType["QRCode"] = "qrcode";
48
+ ReducerType["Quote"] = "quote";
48
49
  ReducerType["ResetPassword"] = "resetPassword";
49
50
  ReducerType["RevenueCenters"] = "revenueCenters";
50
51
  ReducerType["Rewards"] = "rewards";
@@ -49,6 +49,7 @@ export declare const useAppDispatch: () => import("redux-thunk").ThunkDispatch<i
49
49
  orderRating: import("..").OrderRatingState;
50
50
  posts: import("..").PostsSlice;
51
51
  qr: import("..").QrState;
52
+ quote: import("..").QuoteState;
52
53
  resetPassword: import("..").ResetPasswordState;
53
54
  revenueCenters: import("..").RevenueCentersState;
54
55
  sidebar: import("..").SidebarState;
@@ -48,6 +48,7 @@ export declare const appReducer: import("redux").Reducer<import("redux").Combine
48
48
  orderRating: import("../slices").OrderRatingState;
49
49
  posts: import("../slices").PostsSlice;
50
50
  qr: import("../slices").QrState;
51
+ quote: import("../slices").QuoteState;
51
52
  resetPassword: import("../slices").ResetPasswordState;
52
53
  revenueCenters: import("../slices").RevenueCentersState;
53
54
  sidebar: import("../slices").SidebarState;
@@ -108,6 +109,7 @@ declare const store: import("@reduxjs/toolkit/dist/configureStore").ToolkitStore
108
109
  orderRating: import("../slices").OrderRatingState;
109
110
  posts: import("../slices").PostsSlice;
110
111
  qr: import("../slices").QrState;
112
+ quote: import("../slices").QuoteState;
111
113
  resetPassword: import("../slices").ResetPasswordState;
112
114
  revenueCenters: import("../slices").RevenueCentersState;
113
115
  sidebar: import("../slices").SidebarState;
@@ -166,6 +168,7 @@ declare const store: import("@reduxjs/toolkit/dist/configureStore").ToolkitStore
166
168
  orderRating: import("../slices").OrderRatingState;
167
169
  posts: import("../slices").PostsSlice;
168
170
  qr: import("../slices").QrState;
171
+ quote: import("../slices").QuoteState;
169
172
  resetPassword: import("../slices").ResetPasswordState;
170
173
  revenueCenters: import("../slices").RevenueCentersState;
171
174
  sidebar: import("../slices").SidebarState;
@@ -1,5 +1,5 @@
1
1
  import { combineReducers, configureStore } from '@reduxjs/toolkit';
2
- import { alertsReducer, allergensReducer, announcementsReducer, checkoutReducer, completedOrdersReducer, configReducer, confirmationReducer, customerReducer, dealsReducer, donationsReducer, geolocationReducer, giftCardsReducer, groupOrderReducer, guestReducer, loaderReducer, menuDisplayReducer, menuItemsReducer, menuReducer, miscReducer, modalReducer, navReducer, navSiteReducer, notificationsReducer, oneTimePasscodeReducer, orderFulfillmentReducer, orderRatingReducer, orderReducer, postsReducer, qrReducer, resetPasswordReducer, revenueCentersReducer, sidebarModalReducer, sidebarReducer, signUpReducer, tagsReducer, termsReducer, validTimesReducer, verifyAccountReducer } from '../slices';
2
+ import { alertsReducer, allergensReducer, announcementsReducer, checkoutReducer, completedOrdersReducer, configReducer, confirmationReducer, customerReducer, dealsReducer, donationsReducer, geolocationReducer, giftCardsReducer, groupOrderReducer, guestReducer, loaderReducer, menuDisplayReducer, menuItemsReducer, menuReducer, miscReducer, modalReducer, navReducer, navSiteReducer, notificationsReducer, oneTimePasscodeReducer, orderFulfillmentReducer, orderRatingReducer, orderReducer, postsReducer, qrReducer, quoteReducer, resetPasswordReducer, revenueCentersReducer, sidebarModalReducer, sidebarReducer, signUpReducer, tagsReducer, termsReducer, validTimesReducer, verifyAccountReducer } from '../slices';
3
3
  import { ReducerType } from '../slices/types';
4
4
  export const appReducer = combineReducers({
5
5
  [ReducerType.Alerts]: alertsReducer,
@@ -31,6 +31,7 @@ export const appReducer = combineReducers({
31
31
  [ReducerType.OrderRating]: orderRatingReducer,
32
32
  [ReducerType.Posts]: postsReducer,
33
33
  [ReducerType.Qr]: qrReducer,
34
+ [ReducerType.Quote]: quoteReducer,
34
35
  [ReducerType.ResetPassword]: resetPasswordReducer,
35
36
  [ReducerType.RevenueCenters]: revenueCentersReducer,
36
37
  [ReducerType.Sidebar]: sidebarReducer,
@@ -122,6 +122,7 @@ declare class OpenTenderAPI {
122
122
  postPointsShopReward(token: string, rewardId: string): Promise<unknown>;
123
123
  getCustomerOrders(token: string, limit: number, timing: string): Promise<unknown>;
124
124
  getCustomerOrder(token: string, orderId: number): Promise<unknown>;
125
+ getQuote(token: string | null, orderUuid: string): Promise<unknown>;
125
126
  postCustomerGroupOrder(token: string, data: any): Promise<GroupOrder | null | undefined>;
126
127
  getCustomerGroupOrders(token: string): Promise<GroupOrdersExpanded | null | undefined>;
127
128
  getCustomerGroupOrder(token: string, cartId: number): Promise<GroupOrder | null | undefined>;
@@ -575,6 +575,9 @@ class OpenTenderAPI {
575
575
  getCustomerOrder(token, orderId) {
576
576
  return this.request(`/customer/orders/${orderId}`, 'GET', null, null, token);
577
577
  }
578
+ getQuote(token, orderUuid) {
579
+ return this.request(`/orders/uuid/${orderUuid}`, 'GET', null, null, token);
580
+ }
578
581
  postCustomerGroupOrder(token, data) {
579
582
  return this.request(`/customer/carts`, 'POST', data, null, token);
580
583
  }
@@ -76,6 +76,7 @@ export declare const selectSelectedAllergenNames: ((state: import("redux").Empty
76
76
  orderRating: import("./orderRating").OrderRatingState;
77
77
  posts: import("./posts").PostsSlice;
78
78
  qr: import("./qr").QrState;
79
+ quote: import("./quote").QuoteState;
79
80
  resetPassword: import("./resetPassword").ResetPasswordState;
80
81
  revenueCenters: import("./revenueCenters").RevenueCentersState;
81
82
  sidebar: import("./sidebar").SidebarState;
@@ -73,6 +73,7 @@ export declare const selectAnnouncementsPage: (page: AnnouncementPageType) => ((
73
73
  orderRating: import("./orderRating").OrderRatingState;
74
74
  posts: import("./posts").PostsSlice;
75
75
  qr: import("./qr").QrState;
76
+ quote: import("./quote").QuoteState;
76
77
  resetPassword: import("./resetPassword").ResetPasswordState;
77
78
  revenueCenters: import("./revenueCenters").RevenueCentersState;
78
79
  sidebar: import("./sidebar").SidebarState;
@@ -150,6 +151,7 @@ export declare const selectHasAnnouncementsPage: (page: AnnouncementPageType) =>
150
151
  orderRating: import("./orderRating").OrderRatingState;
151
152
  posts: import("./posts").PostsSlice;
152
153
  qr: import("./qr").QrState;
154
+ quote: import("./quote").QuoteState;
153
155
  resetPassword: import("./resetPassword").ResetPasswordState;
154
156
  revenueCenters: import("./revenueCenters").RevenueCentersState;
155
157
  sidebar: import("./sidebar").SidebarState;
@@ -29,8 +29,8 @@ export declare const validateOrder: import("@reduxjs/toolkit").AsyncThunk<{
29
29
  rejectedMeta?: unknown;
30
30
  }>;
31
31
  export declare const submitOrder: import("@reduxjs/toolkit").AsyncThunk<Order, {
32
- save?: boolean | undefined;
33
- }, {
32
+ save: boolean;
33
+ } | undefined, {
34
34
  state: AppState;
35
35
  rejectValue: CheckoutErrorMessages;
36
36
  dispatch?: Dispatch<import("redux").AnyAction> | undefined;
@@ -137,7 +137,7 @@ export const validateOrder = createAsyncThunk(CheckoutActionType.ValidateOrder,
137
137
  return rejectWithValue(errors);
138
138
  }
139
139
  }));
140
- export const submitOrder = createAsyncThunk(CheckoutActionType.SubmitOrder, ({ save }, { dispatch, getState, rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {
140
+ export const submitOrder = createAsyncThunk(CheckoutActionType.SubmitOrder, (args, { dispatch, getState, rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {
141
141
  const { api } = getState().config;
142
142
  if (!api)
143
143
  return;
@@ -147,7 +147,8 @@ export const submitOrder = createAsyncThunk(CheckoutActionType.SubmitOrder, ({ s
147
147
  args: { text: 'Submitting your order...' }
148
148
  };
149
149
  dispatch(setAlert(alert));
150
- const preparedOrder = assembleOrder(getState(), save || false);
150
+ const { save = false } = args || {};
151
+ const preparedOrder = assembleOrder(getState(), save);
151
152
  if (!preparedOrder) {
152
153
  return dispatch(setAlert({ type: 'close' }));
153
154
  }
@@ -132,6 +132,7 @@ export declare const selectOptIns: ((state: import("redux").EmptyObject & {
132
132
  orderRating: import("./orderRating").OrderRatingState;
133
133
  posts: import("./posts").PostsSlice;
134
134
  qr: import("./qr").QrState;
135
+ quote: import("./quote").QuoteState;
135
136
  resetPassword: import("./resetPassword").ResetPasswordState;
136
137
  revenueCenters: import("./revenueCenters").RevenueCentersState;
137
138
  sidebar: import("./sidebar").SidebarState;
@@ -115,6 +115,7 @@ export declare const selectCustomerCreditCardsForPayment: ((state: import("redux
115
115
  orderRating: import("..").OrderRatingState;
116
116
  posts: import("..").PostsSlice;
117
117
  qr: import("..").QrState;
118
+ quote: import("..").QuoteState;
118
119
  resetPassword: import("..").ResetPasswordState;
119
120
  revenueCenters: import("..").RevenueCentersState;
120
121
  sidebar: import("..").SidebarState;
@@ -72,6 +72,7 @@ export declare const selectCustomerLoyaltyProgram: ((state: import("redux").Empt
72
72
  orderRating: import("..").OrderRatingState;
73
73
  posts: import("..").PostsSlice;
74
74
  qr: import("..").QrState;
75
+ quote: import("..").QuoteState;
75
76
  resetPassword: import("..").ResetPasswordState;
76
77
  revenueCenters: import("..").RevenueCentersState;
77
78
  sidebar: import("..").SidebarState;
@@ -147,6 +148,7 @@ export declare const selectCustomerPointsProgram: (orderType: OrderType | null)
147
148
  orderRating: import("..").OrderRatingState;
148
149
  posts: import("..").PostsSlice;
149
150
  qr: import("..").QrState;
151
+ quote: import("..").QuoteState;
150
152
  resetPassword: import("..").ResetPasswordState;
151
153
  revenueCenters: import("..").RevenueCentersState;
152
154
  sidebar: import("..").SidebarState;
@@ -82,6 +82,7 @@ export declare const selectCustomerOrder: ((state: import("redux").EmptyObject &
82
82
  orderRating: import("..").OrderRatingState;
83
83
  posts: import("..").PostsSlice;
84
84
  qr: import("..").QrState;
85
+ quote: import("..").QuoteState;
85
86
  resetPassword: import("..").ResetPasswordState;
86
87
  revenueCenters: import("..").RevenueCentersState;
87
88
  sidebar: import("..").SidebarState;
@@ -69,6 +69,7 @@ export declare const selectCustomerTplsPoints: ((state: import("redux").EmptyObj
69
69
  orderRating: import("..").OrderRatingState;
70
70
  posts: import("..").PostsSlice;
71
71
  qr: import("..").QrState;
72
+ quote: import("..").QuoteState;
72
73
  resetPassword: import("..").ResetPasswordState;
73
74
  revenueCenters: import("..").RevenueCentersState;
74
75
  sidebar: import("..").SidebarState;
@@ -132,6 +133,7 @@ export declare const selectCustomerTplsRewards: ((state: import("redux").EmptyOb
132
133
  orderRating: import("..").OrderRatingState;
133
134
  posts: import("..").PostsSlice;
134
135
  qr: import("..").QrState;
136
+ quote: import("..").QuoteState;
135
137
  resetPassword: import("..").ResetPasswordState;
136
138
  revenueCenters: import("..").RevenueCentersState;
137
139
  sidebar: import("..").SidebarState;
@@ -195,6 +197,7 @@ export declare const selectCustomerTplsProgress: ((state: import("redux").EmptyO
195
197
  orderRating: import("..").OrderRatingState;
196
198
  posts: import("..").PostsSlice;
197
199
  qr: import("..").QrState;
200
+ quote: import("..").QuoteState;
198
201
  resetPassword: import("..").ResetPasswordState;
199
202
  revenueCenters: import("..").RevenueCentersState;
200
203
  sidebar: import("..").SidebarState;
@@ -155,6 +155,7 @@ export declare const selectSpendingLimit: ((state: import("redux").EmptyObject &
155
155
  orderRating: import("./orderRating").OrderRatingState;
156
156
  posts: import("./posts").PostsSlice;
157
157
  qr: import("./qr").QrState;
158
+ quote: import("./quote").QuoteState;
158
159
  resetPassword: import("./resetPassword").ResetPasswordState;
159
160
  revenueCenters: import("./revenueCenters").RevenueCentersState;
160
161
  sidebar: import("./sidebar").SidebarState;
@@ -221,6 +222,7 @@ export declare const selectGroupOrderClosed: ((state: import("redux").EmptyObjec
221
222
  orderRating: import("./orderRating").OrderRatingState;
222
223
  posts: import("./posts").PostsSlice;
223
224
  qr: import("./qr").QrState;
225
+ quote: import("./quote").QuoteState;
224
226
  resetPassword: import("./resetPassword").ResetPasswordState;
225
227
  revenueCenters: import("./revenueCenters").RevenueCentersState;
226
228
  sidebar: import("./sidebar").SidebarState;
@@ -289,6 +291,7 @@ export declare const selectGroupOrderTests: ((state: import("redux").EmptyObject
289
291
  orderRating: import("./orderRating").OrderRatingState;
290
292
  posts: import("./posts").PostsSlice;
291
293
  qr: import("./qr").QrState;
294
+ quote: import("./quote").QuoteState;
292
295
  resetPassword: import("./resetPassword").ResetPasswordState;
293
296
  revenueCenters: import("./revenueCenters").RevenueCentersState;
294
297
  sidebar: import("./sidebar").SidebarState;
@@ -366,6 +369,7 @@ export declare const selectGroupOrderPrepTimes: ((state: import("redux").EmptyOb
366
369
  orderRating: import("./orderRating").OrderRatingState;
367
370
  posts: import("./posts").PostsSlice;
368
371
  qr: import("./qr").QrState;
372
+ quote: import("./quote").QuoteState;
369
373
  resetPassword: import("./resetPassword").ResetPasswordState;
370
374
  revenueCenters: import("./revenueCenters").RevenueCentersState;
371
375
  sidebar: import("./sidebar").SidebarState;
@@ -27,6 +27,7 @@ export * from './orderFulfillment';
27
27
  export * from './orderRating';
28
28
  export * from './posts';
29
29
  export * from './qr';
30
+ export * from './quote';
30
31
  export * from './resetPassword';
31
32
  export * from './revenueCenters';
32
33
  export * from './sidebar';
@@ -27,6 +27,7 @@ export * from './orderFulfillment';
27
27
  export * from './orderRating';
28
28
  export * from './posts';
29
29
  export * from './qr';
30
+ export * from './quote';
30
31
  export * from './resetPassword';
31
32
  export * from './revenueCenters';
32
33
  export * from './sidebar';
@@ -177,6 +177,7 @@ export declare const selectOrderLimits: ((state: import("redux").EmptyObject & {
177
177
  orderRating: import("./orderRating").OrderRatingState;
178
178
  posts: import("./posts").PostsSlice;
179
179
  qr: import("./qr").QrState;
180
+ quote: import("./quote").QuoteState;
180
181
  resetPassword: import("./resetPassword").ResetPasswordState;
181
182
  revenueCenters: import("./revenueCenters").RevenueCentersState;
182
183
  sidebar: import("./sidebar").SidebarState;
@@ -251,6 +252,7 @@ export declare const selectCartIds: ((state: import("redux").EmptyObject & {
251
252
  orderRating: import("./orderRating").OrderRatingState;
252
253
  posts: import("./posts").PostsSlice;
253
254
  qr: import("./qr").QrState;
255
+ quote: import("./quote").QuoteState;
254
256
  resetPassword: import("./resetPassword").ResetPasswordState;
255
257
  revenueCenters: import("./revenueCenters").RevenueCentersState;
256
258
  sidebar: import("./sidebar").SidebarState;
@@ -320,6 +322,7 @@ export declare const selectMenuVars: ((state: import("redux").EmptyObject & {
320
322
  orderRating: import("./orderRating").OrderRatingState;
321
323
  posts: import("./posts").PostsSlice;
322
324
  qr: import("./qr").QrState;
325
+ quote: import("./quote").QuoteState;
323
326
  resetPassword: import("./resetPassword").ResetPasswordState;
324
327
  revenueCenters: import("./revenueCenters").RevenueCentersState;
325
328
  sidebar: import("./sidebar").SidebarState;
@@ -0,0 +1,98 @@
1
+ import { Order, RequestError, RequestStatus } from '@open-tender/types';
2
+ import { AppState } from '../app';
3
+ export interface QuoteState {
4
+ entity: Order | null;
5
+ error: RequestError;
6
+ loading: RequestStatus;
7
+ }
8
+ export declare enum QuoteActionType {
9
+ FetchQuote = "customer/fetchQuote"
10
+ }
11
+ export declare const fetchQuote: import("@reduxjs/toolkit").AsyncThunk<Order, string, {
12
+ state: AppState;
13
+ rejectValue: RequestError;
14
+ dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
15
+ extra?: unknown;
16
+ serializedErrorType?: unknown;
17
+ pendingMeta?: unknown;
18
+ fulfilledMeta?: unknown;
19
+ rejectedMeta?: unknown;
20
+ }>;
21
+ export declare const resetQuote: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"quote/resetQuote">, resetQuoteError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"quote/resetQuoteError">, setQuote: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "quote/setQuote">;
22
+ export declare const selectQuote: ((state: import("redux").EmptyObject & {
23
+ alerts: import("@open-tender/types").Alerts;
24
+ allergens: import("./allergens").AllergensState;
25
+ announcements: import("./announcements").AnnouncementsState;
26
+ checkout: import("./checkout").CheckoutState;
27
+ completedOrders: import("./completedOrders").CompletedOrdersState;
28
+ config: import("./config").ConfigState;
29
+ confirmation: import("./confirmation").ConfirmationState;
30
+ customer: import("redux").CombinedState<{
31
+ account: import("./customer").AccountState;
32
+ communicationPreferences: import("./customer").CustomerCommunicationPrefsState;
33
+ creditCards: import("./customer").CustomerCreditCardsState;
34
+ allergens: import("./customer").CustomerAllergensState;
35
+ addresses: import("./customer").CustomerAddressesState;
36
+ favorites: import("./customer").CustomerFavoritesState;
37
+ fcmToken: import("./customer").CustomerFcmTokenState;
38
+ giftCards: import("./customer").CustomerGiftCardsState;
39
+ groupOrders: import("./customer").CustomerGroupOrdersState;
40
+ houseAccounts: import("./customer").CustomerHouseAccountsState;
41
+ loyalty: import("./customer").CustomerLoyaltyState;
42
+ order: import("./customer").CustomerOrderState;
43
+ orders: import("./customer").CustomerOrdersState;
44
+ pointsShop: import("./customer").PointsShopState;
45
+ qrcode: import("./customer").CustomerQRCodeState;
46
+ rewards: import("./customer").CustomerRewardsState;
47
+ thanx: import("./customer").CustomerThanxState;
48
+ tpls: import("./customer").CustomerTplsState;
49
+ }>;
50
+ deals: import("./deals").DealsState;
51
+ donations: import("./donations").DonationState;
52
+ geolocation: import("./geolocation").GeoLocationState;
53
+ giftCards: import("./giftCards").GiftCardsState;
54
+ groupOrder: import("./groupOrder").GroupOrderState;
55
+ guest: import("./guest").GuestState;
56
+ loader: import("./loader").LoaderState;
57
+ menu: import("./menu").MenuState;
58
+ menuDisplay: import("./menuDisplay").MenuDisplayState;
59
+ menuItems: import("./menuItems").MenuItemsState;
60
+ modal: import("@open-tender/types").Modal;
61
+ misc: import("./misc").MiscState;
62
+ nav: import("./nav").NavState;
63
+ navSite: import("./navSite").NavSiteState;
64
+ notifications: import("@open-tender/types").Notifications;
65
+ oneTimePasscode: import("./oneTimePasscode").OneTimePasscodeState;
66
+ order: import("./order").OrderState;
67
+ orderFulfillment: import("./orderFulfillment").OrderFulfillmentState;
68
+ orderRating: import("./orderRating").OrderRatingState;
69
+ posts: import("./posts").PostsSlice;
70
+ qr: import("./qr").QrState;
71
+ quote: QuoteState;
72
+ resetPassword: import("./resetPassword").ResetPasswordState;
73
+ revenueCenters: import("./revenueCenters").RevenueCentersState;
74
+ sidebar: import("./sidebar").SidebarState;
75
+ sidebarModal: import("./sidebarModal").SidebarModalState;
76
+ signUp: import("./signUp").SignUpState;
77
+ tags: import("./tags").TagsState;
78
+ terms: import("./terms").TermsSlice;
79
+ validTimes: import("./validTimes").ValidTimesState;
80
+ verifyAccount: import("./verifyAccount").VerifyAccountState;
81
+ }) => {
82
+ order: Order | null;
83
+ loading: RequestStatus;
84
+ error: RequestError;
85
+ }) & import("reselect").OutputSelectorFields<(args_0: {
86
+ order: Order | null;
87
+ loading: RequestStatus;
88
+ error: RequestError;
89
+ }) => {
90
+ order: Order | null;
91
+ loading: RequestStatus;
92
+ error: RequestError;
93
+ }, {
94
+ clearCache: () => void;
95
+ }> & {
96
+ clearCache: () => void;
97
+ };
98
+ export declare const quoteReducer: import("redux").Reducer<QuoteState, import("redux").AnyAction>;
@@ -0,0 +1,61 @@
1
+ import { __awaiter } from "tslib";
2
+ import { createAsyncThunk, createSelector, createSlice } from '@reduxjs/toolkit';
3
+ import { selectToken } from './customer';
4
+ import { ReducerType } from './types';
5
+ const initialState = {
6
+ entity: null,
7
+ error: null,
8
+ loading: 'idle'
9
+ };
10
+ export var QuoteActionType;
11
+ (function (QuoteActionType) {
12
+ QuoteActionType["FetchQuote"] = "customer/fetchQuote";
13
+ })(QuoteActionType || (QuoteActionType = {}));
14
+ export const fetchQuote = createAsyncThunk(QuoteActionType.FetchQuote, (orderUuid, { getState, rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {
15
+ try {
16
+ const api = getState().config.api;
17
+ const token = selectToken(getState());
18
+ return yield api.getQuote(token, orderUuid);
19
+ }
20
+ catch (err) {
21
+ return rejectWithValue(err);
22
+ }
23
+ }));
24
+ const quoteSlice = createSlice({
25
+ name: ReducerType.Quote,
26
+ initialState,
27
+ reducers: {
28
+ resetQuote: () => initialState,
29
+ resetQuoteError: state => {
30
+ state.error = null;
31
+ state.loading = 'idle';
32
+ },
33
+ setQuote: (state, action) => {
34
+ state.entity = action.payload;
35
+ state.error = null;
36
+ }
37
+ },
38
+ extraReducers: builder => {
39
+ builder
40
+ .addCase(fetchQuote.fulfilled, (state, action) => {
41
+ state.entity = action.payload;
42
+ state.loading = 'idle';
43
+ state.error = null;
44
+ })
45
+ .addCase(fetchQuote.pending, state => {
46
+ state.loading = 'pending';
47
+ })
48
+ .addCase(fetchQuote.rejected, (state, action) => {
49
+ state.error = action.payload;
50
+ state.loading = 'idle';
51
+ });
52
+ }
53
+ });
54
+ export const { resetQuote, resetQuoteError, setQuote } = quoteSlice.actions;
55
+ export const selectQuote = createSelector((state) => {
56
+ const { entity: order, loading, error } = state.quote;
57
+ return { order, loading, error };
58
+ }, ({ order, loading, error }) => {
59
+ return { order, loading, error };
60
+ });
61
+ export const quoteReducer = quoteSlice.reducer;
@@ -76,6 +76,7 @@ export declare const selectSelectedTagNames: ((state: import("redux").EmptyObjec
76
76
  orderRating: import("./orderRating").OrderRatingState;
77
77
  posts: import("./posts").PostsSlice;
78
78
  qr: import("./qr").QrState;
79
+ quote: import("./quote").QuoteState;
79
80
  resetPassword: import("./resetPassword").ResetPasswordState;
80
81
  revenueCenters: import("./revenueCenters").RevenueCentersState;
81
82
  sidebar: import("./sidebar").SidebarState;
@@ -41,6 +41,7 @@ export declare enum ReducerType {
41
41
  PointsShop = "pointsShop",
42
42
  Qr = "qr",
43
43
  QRCode = "qrcode",
44
+ Quote = "quote",
44
45
  ResetPassword = "resetPassword",
45
46
  RevenueCenters = "revenueCenters",
46
47
  Rewards = "rewards",
@@ -42,6 +42,7 @@ export var ReducerType;
42
42
  ReducerType["PointsShop"] = "pointsShop";
43
43
  ReducerType["Qr"] = "qr";
44
44
  ReducerType["QRCode"] = "qrcode";
45
+ ReducerType["Quote"] = "quote";
45
46
  ReducerType["ResetPassword"] = "resetPassword";
46
47
  ReducerType["RevenueCenters"] = "revenueCenters";
47
48
  ReducerType["Rewards"] = "rewards";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-tender/cloud",
3
- "version": "0.1.103",
3
+ "version": "0.1.105",
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",