@open-tender/store 1.0.25 → 1.0.26

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.
@@ -1,4 +1,4 @@
1
- import { Cart, CartCounts, CartItem, MenuCategory, MenuRevenueCenter, Messages, OrderType, PrepType, RequestError, RequestStatus, RequestedAt, ServiceType } from '@open-tender/types';
1
+ import { Cart, CartCounts, CartItem, MenuCategory, MenuRevenueCenter, Messages, OrderCart, OrderType, PrepType, RequestError, RequestStatus, RequestedAt, ServiceType } from '@open-tender/types';
2
2
  import { AppState } from '../app';
3
3
  export interface OrderState {
4
4
  orderId: string | null;
@@ -19,8 +19,21 @@ export interface OrderState {
19
19
  loading: RequestStatus;
20
20
  }
21
21
  export declare enum OrderActionType {
22
- FetchRevenueCenter = "orders/fetchRevenueCenter"
22
+ Reorder = "orders/reorder"
23
23
  }
24
+ export declare const reorder: import("@reduxjs/toolkit").AsyncThunk<{
25
+ cart: Cart;
26
+ cartCounts: CartCounts;
27
+ }, OrderCart, {
28
+ state: AppState;
29
+ rejectValue: RequestError;
30
+ dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
31
+ extra?: unknown;
32
+ serializedErrorType?: unknown;
33
+ pendingMeta?: unknown;
34
+ fulfilledMeta?: unknown;
35
+ rejectedMeta?: unknown;
36
+ }>;
24
37
  export declare const resetOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetOrder">, resetOrderType: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetOrderType">, resetRevenueCenter: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetRevenueCenter">, resetLocation: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetLocation">, resetCart: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetCart">, resetMessages: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetMessages">, resetAlert: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetAlert">, setAlert: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setAlert">, setOrderId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderId">, setOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderType">, setServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setServiceType">, setRequestedAt: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setRequestedAt">, setRevenueCenterId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setRevenueCenterId">, setTable: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setTable">, setPrepType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setPrepType">, setOrderServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderServiceType">, setMenuVars: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setMenuVars">, setCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCart">, setCurrentVendor: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentVendor">, setCurrentCategory: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentCategory">, setCurrentItem: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentItem">, addItemToCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/addItemToCart">, removeItemFromCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/removeItemFromCart">, incrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/incrementItemInCart">, decrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/decrementItemInCart">, addMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/addMessage">, removeMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/removeMessage">;
25
38
  export declare const selectOrder: (state: AppState) => OrderState;
26
39
  export declare const selectAlert: (state: AppState) => string | null;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.selectCartValidate = exports.selectCanOrder = exports.selectCartCounts = exports.selectCartTotals = exports.selectCartTotal = exports.selectCartQuantity = exports.selectCartIds = exports.selectCart = exports.selectCurrentItem = exports.selectCurrentCategory = exports.selectCurrentVendor = exports.selectMenuVars = exports.selectMenuSlug = exports.selectRevenueCenterId = exports.selectRequestedAt = exports.selectServiceTypeName = exports.selectServiceType = exports.selectOrderTypeName = exports.selectOrderType = exports.selectMessages = exports.selectAlert = exports.selectOrder = exports.removeMessage = exports.addMessage = exports.decrementItemInCart = exports.incrementItemInCart = exports.removeItemFromCart = exports.addItemToCart = exports.setCurrentItem = exports.setCurrentCategory = exports.setCurrentVendor = exports.setCart = exports.setMenuVars = exports.setOrderServiceType = exports.setPrepType = exports.setTable = exports.setRevenueCenterId = exports.setRequestedAt = exports.setServiceType = exports.setOrderType = exports.setOrderId = exports.setAlert = exports.resetAlert = exports.resetMessages = exports.resetCart = exports.resetLocation = exports.resetRevenueCenter = exports.resetOrderType = exports.resetOrder = exports.OrderActionType = void 0;
5
- exports.orderReducer = void 0;
4
+ exports.selectCanOrder = exports.selectCartCounts = exports.selectCartTotals = exports.selectCartTotal = exports.selectCartQuantity = exports.selectCartIds = exports.selectCart = exports.selectCurrentItem = exports.selectCurrentCategory = exports.selectCurrentVendor = exports.selectMenuVars = exports.selectMenuSlug = exports.selectRevenueCenterId = exports.selectRequestedAt = exports.selectServiceTypeName = exports.selectServiceType = exports.selectOrderTypeName = exports.selectOrderType = exports.selectMessages = exports.selectAlert = exports.selectOrder = exports.removeMessage = exports.addMessage = exports.decrementItemInCart = exports.incrementItemInCart = exports.removeItemFromCart = exports.addItemToCart = exports.setCurrentItem = exports.setCurrentCategory = exports.setCurrentVendor = exports.setCart = exports.setMenuVars = exports.setOrderServiceType = exports.setPrepType = exports.setTable = exports.setRevenueCenterId = exports.setRequestedAt = exports.setServiceType = exports.setOrderType = exports.setOrderId = exports.setAlert = exports.resetAlert = exports.resetMessages = exports.resetCart = exports.resetLocation = exports.resetRevenueCenter = exports.resetOrderType = exports.resetOrder = exports.reorder = exports.OrderActionType = void 0;
5
+ exports.orderReducer = exports.selectCartValidate = void 0;
6
6
  var tslib_1 = require("tslib");
7
7
  var toolkit_1 = require("@reduxjs/toolkit");
8
8
  var utils_1 = require("@open-tender/utils");
@@ -27,8 +27,34 @@ var initialState = {
27
27
  };
28
28
  var OrderActionType;
29
29
  (function (OrderActionType) {
30
- OrderActionType["FetchRevenueCenter"] = "orders/fetchRevenueCenter";
30
+ OrderActionType["Reorder"] = "orders/reorder";
31
31
  })(OrderActionType || (exports.OrderActionType = OrderActionType = {}));
32
+ exports.reorder = (0, toolkit_1.createAsyncThunk)(OrderActionType.Reorder, function (orderCart, _a) {
33
+ var getState = _a.getState, rejectWithValue = _a.rejectWithValue;
34
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
35
+ var _b, config, order, revenueCenterId, requestedAt, serviceType, categories, menuItems, simpleCart, _c, cart, cartCounts, err_1;
36
+ return tslib_1.__generator(this, function (_d) {
37
+ switch (_d.label) {
38
+ case 0:
39
+ _d.trys.push([0, 2, , 3]);
40
+ _b = getState(), config = _b.config, order = _b.order;
41
+ revenueCenterId = order.revenueCenterId, requestedAt = order.requestedAt;
42
+ serviceType = order.serviceType || 'WALKIN';
43
+ return [4 /*yield*/, config.api.getMenu(revenueCenterId || 0, serviceType, requestedAt)];
44
+ case 1:
45
+ categories = (_d.sent()).menu;
46
+ menuItems = Object.values((0, utils_1.makeMenuItemLookup)(categories));
47
+ simpleCart = (0, utils_1.makeSimpleCart)(orderCart);
48
+ _c = (0, utils_1.rehydrateCart)(menuItems, simpleCart), cart = _c.cart, cartCounts = _c.cartCounts;
49
+ return [2 /*return*/, { cart: cart, cartCounts: cartCounts }];
50
+ case 2:
51
+ err_1 = _d.sent();
52
+ return [2 /*return*/, rejectWithValue(err_1)];
53
+ case 3: return [2 /*return*/];
54
+ }
55
+ });
56
+ });
57
+ });
32
58
  var orderSlice = (0, toolkit_1.createSlice)({
33
59
  name: types_1.ReducerType.Orders,
34
60
  initialState: initialState,
@@ -144,6 +170,25 @@ var orderSlice = (0, toolkit_1.createSlice)({
144
170
  removeMessage: function (state, action) {
145
171
  state.messages = state.messages.filter(function (i) { return i.id !== action.payload; });
146
172
  }
173
+ },
174
+ extraReducers: function (builder) {
175
+ builder
176
+ .addCase(exports.reorder.fulfilled, function (state, action) {
177
+ state.cart = action.payload.cart;
178
+ state.cartCounts = action.payload.cartCounts;
179
+ state.serviceType = 'WALKIN';
180
+ state.orderType = 'OLO';
181
+ state.prepType = 'EAT_HERE';
182
+ state.loading = 'idle';
183
+ state.error = null;
184
+ })
185
+ .addCase(exports.reorder.pending, function (state) {
186
+ state.loading = 'pending';
187
+ })
188
+ .addCase(exports.reorder.rejected, function (state, action) {
189
+ state.error = action.payload;
190
+ state.loading = 'idle';
191
+ });
147
192
  }
148
193
  });
149
194
  exports.resetOrder = (_a = orderSlice.actions, _a.resetOrder), exports.resetOrderType = _a.resetOrderType, exports.resetRevenueCenter = _a.resetRevenueCenter, exports.resetLocation = _a.resetLocation, exports.resetCart = _a.resetCart, exports.resetMessages = _a.resetMessages, exports.resetAlert = _a.resetAlert, exports.setAlert = _a.setAlert, exports.setOrderId = _a.setOrderId, exports.setOrderType = _a.setOrderType, exports.setServiceType = _a.setServiceType, exports.setRequestedAt = _a.setRequestedAt, exports.setRevenueCenterId = _a.setRevenueCenterId, exports.setTable = _a.setTable, exports.setPrepType = _a.setPrepType, exports.setOrderServiceType = _a.setOrderServiceType, exports.setMenuVars = _a.setMenuVars, exports.setCart = _a.setCart, exports.setCurrentVendor = _a.setCurrentVendor, exports.setCurrentCategory = _a.setCurrentCategory, exports.setCurrentItem = _a.setCurrentItem, exports.addItemToCart = _a.addItemToCart, exports.removeItemFromCart = _a.removeItemFromCart, exports.incrementItemInCart = _a.incrementItemInCart, exports.decrementItemInCart = _a.decrementItemInCart, exports.addMessage = _a.addMessage, exports.removeMessage = _a.removeMessage;
@@ -1,4 +1,4 @@
1
- import { Cart, CartCounts, CartItem, MenuCategory, MenuRevenueCenter, Messages, OrderType, PrepType, RequestError, RequestStatus, RequestedAt, ServiceType } from '@open-tender/types';
1
+ import { Cart, CartCounts, CartItem, MenuCategory, MenuRevenueCenter, Messages, OrderCart, OrderType, PrepType, RequestError, RequestStatus, RequestedAt, ServiceType } from '@open-tender/types';
2
2
  import { AppState } from '../app';
3
3
  export interface OrderState {
4
4
  orderId: string | null;
@@ -19,8 +19,21 @@ export interface OrderState {
19
19
  loading: RequestStatus;
20
20
  }
21
21
  export declare enum OrderActionType {
22
- FetchRevenueCenter = "orders/fetchRevenueCenter"
22
+ Reorder = "orders/reorder"
23
23
  }
24
+ export declare const reorder: import("@reduxjs/toolkit").AsyncThunk<{
25
+ cart: Cart;
26
+ cartCounts: CartCounts;
27
+ }, OrderCart, {
28
+ state: AppState;
29
+ rejectValue: RequestError;
30
+ dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
31
+ extra?: unknown;
32
+ serializedErrorType?: unknown;
33
+ pendingMeta?: unknown;
34
+ fulfilledMeta?: unknown;
35
+ rejectedMeta?: unknown;
36
+ }>;
24
37
  export declare const resetOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetOrder">, resetOrderType: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetOrderType">, resetRevenueCenter: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetRevenueCenter">, resetLocation: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetLocation">, resetCart: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetCart">, resetMessages: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetMessages">, resetAlert: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetAlert">, setAlert: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setAlert">, setOrderId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderId">, setOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderType">, setServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setServiceType">, setRequestedAt: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setRequestedAt">, setRevenueCenterId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setRevenueCenterId">, setTable: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setTable">, setPrepType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setPrepType">, setOrderServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderServiceType">, setMenuVars: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setMenuVars">, setCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCart">, setCurrentVendor: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentVendor">, setCurrentCategory: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentCategory">, setCurrentItem: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentItem">, addItemToCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/addItemToCart">, removeItemFromCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/removeItemFromCart">, incrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/incrementItemInCart">, decrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/decrementItemInCart">, addMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/addMessage">, removeMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/removeMessage">;
25
38
  export declare const selectOrder: (state: AppState) => OrderState;
26
39
  export declare const selectAlert: (state: AppState) => string | null;
@@ -1,7 +1,7 @@
1
1
  var _a;
2
- import { __spreadArray } from "tslib";
3
- import { createSelector, createSlice } from '@reduxjs/toolkit';
4
- import { addItem, calcCartCounts, decrementItem, incrementItem, makeRandomNumberString, orderTypeNamesMap, removeItem, serviceTypeNamesMap } from '@open-tender/utils';
2
+ import { __awaiter, __generator, __spreadArray } from "tslib";
3
+ import { createAsyncThunk, createSelector, createSlice } from '@reduxjs/toolkit';
4
+ import { addItem, calcCartCounts, decrementItem, incrementItem, makeMenuItemLookup, makeRandomNumberString, makeSimpleCart, orderTypeNamesMap, rehydrateCart, removeItem, serviceTypeNamesMap } from '@open-tender/utils';
5
5
  import { ReducerType } from './types';
6
6
  var initialState = {
7
7
  orderId: null,
@@ -23,8 +23,34 @@ var initialState = {
23
23
  };
24
24
  export var OrderActionType;
25
25
  (function (OrderActionType) {
26
- OrderActionType["FetchRevenueCenter"] = "orders/fetchRevenueCenter";
26
+ OrderActionType["Reorder"] = "orders/reorder";
27
27
  })(OrderActionType || (OrderActionType = {}));
28
+ export var reorder = createAsyncThunk(OrderActionType.Reorder, function (orderCart, _a) {
29
+ var getState = _a.getState, rejectWithValue = _a.rejectWithValue;
30
+ return __awaiter(void 0, void 0, void 0, function () {
31
+ var _b, config, order, revenueCenterId, requestedAt, serviceType, categories, menuItems, simpleCart, _c, cart, cartCounts, err_1;
32
+ return __generator(this, function (_d) {
33
+ switch (_d.label) {
34
+ case 0:
35
+ _d.trys.push([0, 2, , 3]);
36
+ _b = getState(), config = _b.config, order = _b.order;
37
+ revenueCenterId = order.revenueCenterId, requestedAt = order.requestedAt;
38
+ serviceType = order.serviceType || 'WALKIN';
39
+ return [4 /*yield*/, config.api.getMenu(revenueCenterId || 0, serviceType, requestedAt)];
40
+ case 1:
41
+ categories = (_d.sent()).menu;
42
+ menuItems = Object.values(makeMenuItemLookup(categories));
43
+ simpleCart = makeSimpleCart(orderCart);
44
+ _c = rehydrateCart(menuItems, simpleCart), cart = _c.cart, cartCounts = _c.cartCounts;
45
+ return [2 /*return*/, { cart: cart, cartCounts: cartCounts }];
46
+ case 2:
47
+ err_1 = _d.sent();
48
+ return [2 /*return*/, rejectWithValue(err_1)];
49
+ case 3: return [2 /*return*/];
50
+ }
51
+ });
52
+ });
53
+ });
28
54
  var orderSlice = createSlice({
29
55
  name: ReducerType.Orders,
30
56
  initialState: initialState,
@@ -140,6 +166,25 @@ var orderSlice = createSlice({
140
166
  removeMessage: function (state, action) {
141
167
  state.messages = state.messages.filter(function (i) { return i.id !== action.payload; });
142
168
  }
169
+ },
170
+ extraReducers: function (builder) {
171
+ builder
172
+ .addCase(reorder.fulfilled, function (state, action) {
173
+ state.cart = action.payload.cart;
174
+ state.cartCounts = action.payload.cartCounts;
175
+ state.serviceType = 'WALKIN';
176
+ state.orderType = 'OLO';
177
+ state.prepType = 'EAT_HERE';
178
+ state.loading = 'idle';
179
+ state.error = null;
180
+ })
181
+ .addCase(reorder.pending, function (state) {
182
+ state.loading = 'pending';
183
+ })
184
+ .addCase(reorder.rejected, function (state, action) {
185
+ state.error = action.payload;
186
+ state.loading = 'idle';
187
+ });
143
188
  }
144
189
  });
145
190
  export var resetOrder = (_a = orderSlice.actions, _a.resetOrder), resetOrderType = _a.resetOrderType, resetRevenueCenter = _a.resetRevenueCenter, resetLocation = _a.resetLocation, resetCart = _a.resetCart, resetMessages = _a.resetMessages, resetAlert = _a.resetAlert, setAlert = _a.setAlert, setOrderId = _a.setOrderId, setOrderType = _a.setOrderType, setServiceType = _a.setServiceType, setRequestedAt = _a.setRequestedAt, setRevenueCenterId = _a.setRevenueCenterId, setTable = _a.setTable, setPrepType = _a.setPrepType, setOrderServiceType = _a.setOrderServiceType, setMenuVars = _a.setMenuVars, setCart = _a.setCart, setCurrentVendor = _a.setCurrentVendor, setCurrentCategory = _a.setCurrentCategory, setCurrentItem = _a.setCurrentItem, addItemToCart = _a.addItemToCart, removeItemFromCart = _a.removeItemFromCart, incrementItemInCart = _a.incrementItemInCart, decrementItemInCart = _a.decrementItemInCart, addMessage = _a.addMessage, removeMessage = _a.removeMessage;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-tender/store",
3
- "version": "1.0.25",
3
+ "version": "1.0.26",
4
4
  "description": "A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our in-store POS API",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",