@open-tender/store 1.0.25 → 1.0.27

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,8 +1,7 @@
1
- import { PosAPI } from '../services';
2
- import { Devices, MenuColors, RequestError, RequestStatus, Store, Timezone } from '../types';
1
+ import { Devices, MenuColors, RequestError, RequestStatus, SelectOptions, Store, Timezone } from '@open-tender/types';
3
2
  import { AppState } from '../app';
3
+ import { PosAPI } from '../services';
4
4
  import { InitAPI } from '../services/api';
5
- import { SelectOptions } from '@open-tender/types';
6
5
  export interface ConfigApp {
7
6
  apiUrl: string;
8
7
  }
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.configReducer = exports.selectCashDrawer = exports.selectPinpad = exports.selectLoyalty = exports.selectTimezone = exports.selectMenuColors = exports.selectSelectOptions = exports.selectStore = exports.selectDevices = exports.selectVersion = exports.selectApi = exports.selectConfig = exports.setApiTerminal = exports.setApi = exports.setVersion = exports.incrementRetries = exports.resetRetries = exports.resetConfig = exports.fetchConfig = exports.ConfigActionType = void 0;
5
5
  var tslib_1 = require("tslib");
6
6
  var toolkit_1 = require("@reduxjs/toolkit");
7
+ var utils_1 = require("@open-tender/utils");
7
8
  var services_1 = require("../services");
8
- var types_1 = require("./types");
9
- var utils_1 = require("../utils");
10
9
  var errors_1 = require("../services/errors");
10
+ var types_1 = require("./types");
11
11
  var pos_1 = require("./pos");
12
12
  var kds_1 = require("./kds");
13
13
  var order_1 = require("./order");
@@ -197,7 +197,7 @@ export declare const completeTicket: import("@reduxjs/toolkit").AsyncThunk<void,
197
197
  }>;
198
198
  export declare const resetkds: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"kds/resetkds">, setKdsTerminalId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsTerminalId">, setKdsItemTypes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsItemTypes">, setKdsPrepStations: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsPrepStations">, setKdsPrepStationId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsPrepStationId">, setKdsOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsOrderType">, setKdsColumns: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsColumns">, setKdsBoxes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsBoxes">, setKdsCardWidth: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsCardWidth">, setKdsFontSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsFontSize">, setKdsColorScheme: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsColorScheme">, setKdsPage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsPage">, setKdsView: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsView">, setKdsBusinessDate: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsBusinessDate">, setKdsSearch: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsSearch">, toggleKdsSummary: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"kds/toggleKdsSummary">, toggleKdsAllDay: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"kds/toggleKdsAllDay">, toggleKdsAllDayMods: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"kds/toggleKdsAllDayMods">, setKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsOrder">, replaceKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/replaceKdsOrder">;
199
199
  export declare const selectKds: (state: AppState) => KdsState;
200
- export declare const selectKdsTerminal: (state: AppState) => import("..").KdsTerminal | null | undefined;
200
+ export declare const selectKdsTerminal: (state: AppState) => import("@open-tender/types").KdsTerminal | null | undefined;
201
201
  export declare const selectKdsItemTypes: (state: AppState) => ItemTypes | null;
202
202
  export declare const selectKdsPrepStations: (state: AppState) => PrepStations;
203
203
  export declare const selectKdsPrepStationId: (state: AppState) => number | null;
@@ -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,12 +1,13 @@
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");
9
9
  var types_1 = require("./types");
10
+ var utils_2 = require("../utils");
10
11
  var initialState = {
11
12
  orderId: null,
12
13
  orderType: null,
@@ -27,8 +28,35 @@ var initialState = {
27
28
  };
28
29
  var OrderActionType;
29
30
  (function (OrderActionType) {
30
- OrderActionType["FetchRevenueCenter"] = "orders/fetchRevenueCenter";
31
+ OrderActionType["Reorder"] = "orders/reorder";
31
32
  })(OrderActionType || (exports.OrderActionType = OrderActionType = {}));
33
+ exports.reorder = (0, toolkit_1.createAsyncThunk)(OrderActionType.Reorder, function (orderCart, _a) {
34
+ var getState = _a.getState, rejectWithValue = _a.rejectWithValue;
35
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
36
+ var _b, config, order, revenueCenterId, serviceType, requestedAt, categories, menuItems, simpleCart, _c, cart, cartCounts, err_1;
37
+ return tslib_1.__generator(this, function (_d) {
38
+ switch (_d.label) {
39
+ case 0:
40
+ _d.trys.push([0, 2, , 3]);
41
+ _b = getState(), config = _b.config, order = _b.order;
42
+ revenueCenterId = order.revenueCenterId || 0;
43
+ serviceType = order.serviceType || 'WALKIN';
44
+ requestedAt = (0, utils_2.dateToIso)(new Date(), (0, utils_1.getUserTimezone)());
45
+ return [4 /*yield*/, config.api.getMenu(revenueCenterId, serviceType, requestedAt)];
46
+ case 1:
47
+ categories = (_d.sent()).menu;
48
+ menuItems = Object.values((0, utils_1.makeMenuItemLookup)(categories));
49
+ simpleCart = (0, utils_1.makeSimpleCart)(orderCart);
50
+ _c = (0, utils_1.rehydrateCart)(menuItems, simpleCart), cart = _c.cart, cartCounts = _c.cartCounts;
51
+ return [2 /*return*/, { cart: cart, cartCounts: cartCounts }];
52
+ case 2:
53
+ err_1 = _d.sent();
54
+ return [2 /*return*/, rejectWithValue(err_1)];
55
+ case 3: return [2 /*return*/];
56
+ }
57
+ });
58
+ });
59
+ });
32
60
  var orderSlice = (0, toolkit_1.createSlice)({
33
61
  name: types_1.ReducerType.Orders,
34
62
  initialState: initialState,
@@ -144,6 +172,25 @@ var orderSlice = (0, toolkit_1.createSlice)({
144
172
  removeMessage: function (state, action) {
145
173
  state.messages = state.messages.filter(function (i) { return i.id !== action.payload; });
146
174
  }
175
+ },
176
+ extraReducers: function (builder) {
177
+ builder
178
+ .addCase(exports.reorder.fulfilled, function (state, action) {
179
+ state.cart = action.payload.cart;
180
+ state.cartCounts = action.payload.cartCounts;
181
+ state.serviceType = 'WALKIN';
182
+ state.orderType = 'OLO';
183
+ state.prepType = 'EAT_HERE';
184
+ state.loading = 'idle';
185
+ state.error = null;
186
+ })
187
+ .addCase(exports.reorder.pending, function (state) {
188
+ state.loading = 'pending';
189
+ })
190
+ .addCase(exports.reorder.rejected, function (state, action) {
191
+ state.error = action.payload;
192
+ state.loading = 'idle';
193
+ });
147
194
  }
148
195
  });
149
196
  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;
@@ -54,7 +54,7 @@ export declare const printPosOrder: import("@reduxjs/toolkit").AsyncThunk<void,
54
54
  }>;
55
55
  export declare const resetPos: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"pos/resetPos">, setPosTerminalId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setPosTerminalId">, setLastOrderId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setLastOrderId">, setMenuPage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setMenuPage">, setPosName: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setPosName">, setPosNotes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setPosNotes">, setCashier: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setCashier">, setManager: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setManager">, setPosFontSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setPosFontSize">, setPosColorScheme: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setPosColorScheme">, setPosOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setPosOrder">, setPosRefund: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setPosRefund">;
56
56
  export declare const selectPos: (state: AppState) => PosState;
57
- export declare const selectPosTerminal: (state: AppState) => import("../types").PosTerminal | null | undefined;
57
+ export declare const selectPosTerminal: (state: AppState) => import("@open-tender/types").PosTerminal | null | undefined;
58
58
  export declare const selectLastOrderId: (state: AppState) => string | null;
59
59
  export declare const selectMenuPage: (state: AppState) => number | null;
60
60
  export declare const selectPosName: (state: AppState) => string | null;
@@ -1,8 +1,7 @@
1
- import { PosAPI } from '../services';
2
- import { Devices, MenuColors, RequestError, RequestStatus, Store, Timezone } from '../types';
1
+ import { Devices, MenuColors, RequestError, RequestStatus, SelectOptions, Store, Timezone } from '@open-tender/types';
3
2
  import { AppState } from '../app';
3
+ import { PosAPI } from '../services';
4
4
  import { InitAPI } from '../services/api';
5
- import { SelectOptions } from '@open-tender/types';
6
5
  export interface ConfigApp {
7
6
  apiUrl: string;
8
7
  }
@@ -1,10 +1,10 @@
1
1
  var _a;
2
2
  import { __assign, __awaiter, __generator } from "tslib";
3
3
  import { createSlice, createAsyncThunk } from '@reduxjs/toolkit';
4
+ import { currentLocalDateStr, getUserTimezone } from '@open-tender/utils';
4
5
  import { PosAPI } from '../services';
5
- import { ReducerType } from './types';
6
- import { getUserTimezone, currentLocalDateStr } from '../utils';
7
6
  import { errorsApi } from '../services/errors';
7
+ import { ReducerType } from './types';
8
8
  import { setCashier } from './pos';
9
9
  import { setKdsItemTypes, setKdsPrepStations } from './kds';
10
10
  import { setRevenueCenterId } from './order';
@@ -197,7 +197,7 @@ export declare const completeTicket: import("@reduxjs/toolkit").AsyncThunk<void,
197
197
  }>;
198
198
  export declare const resetkds: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"kds/resetkds">, setKdsTerminalId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsTerminalId">, setKdsItemTypes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsItemTypes">, setKdsPrepStations: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsPrepStations">, setKdsPrepStationId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsPrepStationId">, setKdsOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsOrderType">, setKdsColumns: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsColumns">, setKdsBoxes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsBoxes">, setKdsCardWidth: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsCardWidth">, setKdsFontSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsFontSize">, setKdsColorScheme: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsColorScheme">, setKdsPage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsPage">, setKdsView: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsView">, setKdsBusinessDate: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsBusinessDate">, setKdsSearch: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsSearch">, toggleKdsSummary: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"kds/toggleKdsSummary">, toggleKdsAllDay: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"kds/toggleKdsAllDay">, toggleKdsAllDayMods: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"kds/toggleKdsAllDayMods">, setKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsOrder">, replaceKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/replaceKdsOrder">;
199
199
  export declare const selectKds: (state: AppState) => KdsState;
200
- export declare const selectKdsTerminal: (state: AppState) => import("..").KdsTerminal | null | undefined;
200
+ export declare const selectKdsTerminal: (state: AppState) => import("@open-tender/types").KdsTerminal | null | undefined;
201
201
  export declare const selectKdsItemTypes: (state: AppState) => ItemTypes | null;
202
202
  export declare const selectKdsPrepStations: (state: AppState) => PrepStations;
203
203
  export declare const selectKdsPrepStationId: (state: AppState) => number | null;
@@ -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,9 @@
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, getUserTimezone, incrementItem, makeMenuItemLookup, makeRandomNumberString, makeSimpleCart, orderTypeNamesMap, rehydrateCart, removeItem, serviceTypeNamesMap } from '@open-tender/utils';
5
5
  import { ReducerType } from './types';
6
+ import { dateToIso } from '../utils';
6
7
  var initialState = {
7
8
  orderId: null,
8
9
  orderType: null,
@@ -23,8 +24,35 @@ var initialState = {
23
24
  };
24
25
  export var OrderActionType;
25
26
  (function (OrderActionType) {
26
- OrderActionType["FetchRevenueCenter"] = "orders/fetchRevenueCenter";
27
+ OrderActionType["Reorder"] = "orders/reorder";
27
28
  })(OrderActionType || (OrderActionType = {}));
29
+ export var reorder = createAsyncThunk(OrderActionType.Reorder, function (orderCart, _a) {
30
+ var getState = _a.getState, rejectWithValue = _a.rejectWithValue;
31
+ return __awaiter(void 0, void 0, void 0, function () {
32
+ var _b, config, order, revenueCenterId, serviceType, requestedAt, categories, menuItems, simpleCart, _c, cart, cartCounts, err_1;
33
+ return __generator(this, function (_d) {
34
+ switch (_d.label) {
35
+ case 0:
36
+ _d.trys.push([0, 2, , 3]);
37
+ _b = getState(), config = _b.config, order = _b.order;
38
+ revenueCenterId = order.revenueCenterId || 0;
39
+ serviceType = order.serviceType || 'WALKIN';
40
+ requestedAt = dateToIso(new Date(), getUserTimezone());
41
+ return [4 /*yield*/, config.api.getMenu(revenueCenterId, serviceType, requestedAt)];
42
+ case 1:
43
+ categories = (_d.sent()).menu;
44
+ menuItems = Object.values(makeMenuItemLookup(categories));
45
+ simpleCart = makeSimpleCart(orderCart);
46
+ _c = rehydrateCart(menuItems, simpleCart), cart = _c.cart, cartCounts = _c.cartCounts;
47
+ return [2 /*return*/, { cart: cart, cartCounts: cartCounts }];
48
+ case 2:
49
+ err_1 = _d.sent();
50
+ return [2 /*return*/, rejectWithValue(err_1)];
51
+ case 3: return [2 /*return*/];
52
+ }
53
+ });
54
+ });
55
+ });
28
56
  var orderSlice = createSlice({
29
57
  name: ReducerType.Orders,
30
58
  initialState: initialState,
@@ -140,6 +168,25 @@ var orderSlice = createSlice({
140
168
  removeMessage: function (state, action) {
141
169
  state.messages = state.messages.filter(function (i) { return i.id !== action.payload; });
142
170
  }
171
+ },
172
+ extraReducers: function (builder) {
173
+ builder
174
+ .addCase(reorder.fulfilled, function (state, action) {
175
+ state.cart = action.payload.cart;
176
+ state.cartCounts = action.payload.cartCounts;
177
+ state.serviceType = 'WALKIN';
178
+ state.orderType = 'OLO';
179
+ state.prepType = 'EAT_HERE';
180
+ state.loading = 'idle';
181
+ state.error = null;
182
+ })
183
+ .addCase(reorder.pending, function (state) {
184
+ state.loading = 'pending';
185
+ })
186
+ .addCase(reorder.rejected, function (state, action) {
187
+ state.error = action.payload;
188
+ state.loading = 'idle';
189
+ });
143
190
  }
144
191
  });
145
192
  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;
@@ -54,7 +54,7 @@ export declare const printPosOrder: import("@reduxjs/toolkit").AsyncThunk<void,
54
54
  }>;
55
55
  export declare const resetPos: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"pos/resetPos">, setPosTerminalId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setPosTerminalId">, setLastOrderId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setLastOrderId">, setMenuPage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setMenuPage">, setPosName: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setPosName">, setPosNotes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setPosNotes">, setCashier: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setCashier">, setManager: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setManager">, setPosFontSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setPosFontSize">, setPosColorScheme: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setPosColorScheme">, setPosOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setPosOrder">, setPosRefund: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "pos/setPosRefund">;
56
56
  export declare const selectPos: (state: AppState) => PosState;
57
- export declare const selectPosTerminal: (state: AppState) => import("../types").PosTerminal | null | undefined;
57
+ export declare const selectPosTerminal: (state: AppState) => import("@open-tender/types").PosTerminal | null | undefined;
58
58
  export declare const selectLastOrderId: (state: AppState) => string | null;
59
59
  export declare const selectMenuPage: (state: AppState) => number | null;
60
60
  export declare const selectPosName: (state: AppState) => string | null;
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.27",
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",