@open-tender/store 1.1.235 → 1.1.237
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.
- package/dist/cjs/components/AccountLoyalty.d.ts +3 -3
- package/dist/cjs/components/AccountLoyalty.js +6 -3
- package/dist/cjs/components/CategoryItem.js +2 -1
- package/dist/cjs/slices/customer.d.ts +144 -2
- package/dist/cjs/slices/customer.js +43 -2
- package/dist/esm/components/AccountLoyalty.d.ts +3 -3
- package/dist/esm/components/AccountLoyalty.js +7 -4
- package/dist/esm/components/CategoryItem.js +3 -2
- package/dist/esm/slices/customer.d.ts +144 -2
- package/dist/esm/slices/customer.js +38 -1
- package/package.json +2 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LoyaltyProgram } from '@open-tender/types';
|
|
2
2
|
import { AccountLoyaltyProps } from '@open-tender/ui';
|
|
3
3
|
import { ReactNode } from 'react';
|
|
4
|
-
declare const AccountLoyalty: ({
|
|
5
|
-
|
|
4
|
+
declare const AccountLoyalty: ({ loyaltyProgram, navigate, children, navigateTo }: {
|
|
5
|
+
loyaltyProgram: LoyaltyProgram;
|
|
6
6
|
navigate: (route: string) => void;
|
|
7
7
|
children: (props: AccountLoyaltyProps) => ReactNode;
|
|
8
8
|
navigateTo?: string;
|
|
@@ -3,13 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
var hooks_1 = require("../app/hooks");
|
|
4
4
|
var slices_1 = require("../slices");
|
|
5
5
|
var AccountLoyalty = function (_a) {
|
|
6
|
-
var
|
|
6
|
+
var _b;
|
|
7
|
+
var loyaltyProgram = _a.loyaltyProgram, navigate = _a.navigate, children = _a.children, navigateTo = _a.navigateTo;
|
|
8
|
+
var store = (0, hooks_1.useAppSelector)(slices_1.selectKiosk).store;
|
|
7
9
|
var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).accountLoyalty;
|
|
8
10
|
var account = (0, hooks_1.useAppSelector)(slices_1.selectCustomer).account;
|
|
11
|
+
var hasLoyalty = (_b = store === null || store === void 0 ? void 0 : store.has_loyalty) !== null && _b !== void 0 ? _b : false;
|
|
9
12
|
var startOrder = function () { return navigate(navigateTo !== null && navigateTo !== void 0 ? navigateTo : '/menu'); };
|
|
10
13
|
var handlers = { startOrder: startOrder };
|
|
11
|
-
if (!config || !account || !
|
|
14
|
+
if (!config || !account || !loyaltyProgram || !hasLoyalty)
|
|
12
15
|
return null;
|
|
13
|
-
return children({ config: config, handlers: handlers, account: account,
|
|
16
|
+
return children({ config: config, handlers: handlers, account: account, loyaltyProgram: loyaltyProgram });
|
|
14
17
|
};
|
|
15
18
|
exports.default = AccountLoyalty;
|
|
@@ -13,7 +13,8 @@ var CategoryItem = function (_a) {
|
|
|
13
13
|
var _b = (0, hooks_1.useAppSelector)(slices_1.selectStoreSettings), display_cals = _b.display_cals, navigation_page = _b.navigation_page;
|
|
14
14
|
var soldOut = (0, hooks_1.useAppSelector)(slices_1.selectMenu).soldOut;
|
|
15
15
|
var cartCounts = (0, hooks_1.useAppSelector)(slices_1.selectCartCounts);
|
|
16
|
-
var
|
|
16
|
+
var pointsProgram = (0, hooks_1.useAppSelector)(slices_1.selectPointsProgram);
|
|
17
|
+
var hasPoints = !!pointsProgram;
|
|
17
18
|
var displaySettings = {};
|
|
18
19
|
var _c = displaySettings || {}, _d = _c.calories, showCals = _d === void 0 ? false : _d, _e = _c.tags, showTags = _e === void 0 ? false : _e, _f = _c.allergens, showAllergens = _f === void 0 ? false : _f;
|
|
19
20
|
var showDesc = 'SHOW';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Allergens, Customer, CustomerEndpoints, CustomerEntities, Discounts, Favorites, GiftCards,
|
|
1
|
+
import { Allergens, Customer, CustomerEndpoints, CustomerEntities, Discounts, Favorites, GiftCards, LoyaltyPrograms, LoyaltyProgramSummary, Orders, OrderType, RequestError, RequestStatus } from '@open-tender/types';
|
|
2
2
|
import { AppState } from '../app';
|
|
3
3
|
export interface CustomerState {
|
|
4
4
|
account: Customer | null;
|
|
@@ -36,7 +36,7 @@ export declare const selectCustomerFavorites: (state: AppState) => Favorites;
|
|
|
36
36
|
export declare const selectCustomerGiftCards: (state: AppState) => GiftCards;
|
|
37
37
|
export declare const selectCustomerOrders: (state: AppState) => Orders;
|
|
38
38
|
export declare const selectCustomerRewards: (state: AppState) => Discounts;
|
|
39
|
-
export declare const
|
|
39
|
+
export declare const selectCustomerLoyaltySummary: ((state: {
|
|
40
40
|
alerts: import("@open-tender/types").Alerts;
|
|
41
41
|
allergens: import("./allergens").AllergensState;
|
|
42
42
|
arrivals: import("./arrivals").ArrivalsState;
|
|
@@ -87,4 +87,146 @@ export declare const selectCustomerLoyalty: ((state: {
|
|
|
87
87
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
88
88
|
memoize: typeof import("reselect").weakMapMemoize;
|
|
89
89
|
};
|
|
90
|
+
export declare const selectCustomerLoyalty: (state: AppState) => LoyaltyPrograms;
|
|
91
|
+
export declare const selectCustomerLoyaltyProgram: ((state: {
|
|
92
|
+
alerts: import("@open-tender/types").Alerts;
|
|
93
|
+
allergens: import("./allergens").AllergensState;
|
|
94
|
+
arrivals: import("./arrivals").ArrivalsState;
|
|
95
|
+
cartSummary: import("./cartSummary").CartSummaryState;
|
|
96
|
+
checkout: import("./checkout").CheckoutState;
|
|
97
|
+
config: import("./config").ConfigState;
|
|
98
|
+
customer: CustomerState;
|
|
99
|
+
customerIdentify: import("./customerIdentify").CustomerIdentifyState;
|
|
100
|
+
deals: import("./deals").DealsState;
|
|
101
|
+
discounts: import("./discounts").DiscountsState;
|
|
102
|
+
errorAlerts: import("./errorAlerts").ErrorAlertsState;
|
|
103
|
+
kds: import("./kds").KdsState;
|
|
104
|
+
kiosk: import("./kiosk").KioskState;
|
|
105
|
+
menu: import("./menu").MenuState;
|
|
106
|
+
menuPages: import("./menuPages").MenuPagesState;
|
|
107
|
+
modal: import("./modal").ModalState;
|
|
108
|
+
notifications: import("@open-tender/types").Notifications;
|
|
109
|
+
offlineAuths: import("./offlineAuths").OfflineAuthsState;
|
|
110
|
+
order: import("./order").OrderState;
|
|
111
|
+
pos: import("./pos").PosState;
|
|
112
|
+
punches: import("./punches").PunchesState;
|
|
113
|
+
refund: import("./refund").RefundState;
|
|
114
|
+
sendReceipt: import("./sendReceipt").SendReceiptState;
|
|
115
|
+
settings: import("./settings").SettingsState;
|
|
116
|
+
sidebar: import("./sidebar").SidebarState;
|
|
117
|
+
surcharges: import("./surcharges").SurchargesState;
|
|
118
|
+
taxes: import("./taxes").TaxesState;
|
|
119
|
+
idle: import("./idle").IdleState;
|
|
120
|
+
tags: import("./tags").TagsState;
|
|
121
|
+
}) => {
|
|
122
|
+
program: import("@open-tender/types").LoyaltyProgram | null;
|
|
123
|
+
loading: RequestStatus;
|
|
124
|
+
error: RequestError;
|
|
125
|
+
}) & {
|
|
126
|
+
clearCache: () => void;
|
|
127
|
+
resultsCount: () => number;
|
|
128
|
+
resetResultsCount: () => void;
|
|
129
|
+
} & {
|
|
130
|
+
resultFunc: (resultFuncArgs_0: {
|
|
131
|
+
entities: LoyaltyPrograms;
|
|
132
|
+
loading: RequestStatus;
|
|
133
|
+
error: RequestError;
|
|
134
|
+
}) => {
|
|
135
|
+
program: import("@open-tender/types").LoyaltyProgram | null;
|
|
136
|
+
loading: RequestStatus;
|
|
137
|
+
error: RequestError;
|
|
138
|
+
};
|
|
139
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
140
|
+
entities: LoyaltyPrograms;
|
|
141
|
+
loading: RequestStatus;
|
|
142
|
+
error: RequestError;
|
|
143
|
+
}) => {
|
|
144
|
+
program: import("@open-tender/types").LoyaltyProgram | null;
|
|
145
|
+
loading: RequestStatus;
|
|
146
|
+
error: RequestError;
|
|
147
|
+
}) & {
|
|
148
|
+
clearCache: () => void;
|
|
149
|
+
resultsCount: () => number;
|
|
150
|
+
resetResultsCount: () => void;
|
|
151
|
+
};
|
|
152
|
+
lastResult: () => {
|
|
153
|
+
program: import("@open-tender/types").LoyaltyProgram | null;
|
|
154
|
+
loading: RequestStatus;
|
|
155
|
+
error: RequestError;
|
|
156
|
+
};
|
|
157
|
+
dependencies: [(state: AppState) => {
|
|
158
|
+
entities: LoyaltyPrograms;
|
|
159
|
+
loading: RequestStatus;
|
|
160
|
+
error: RequestError;
|
|
161
|
+
}];
|
|
162
|
+
recomputations: () => number;
|
|
163
|
+
resetRecomputations: () => void;
|
|
164
|
+
dependencyRecomputations: () => number;
|
|
165
|
+
resetDependencyRecomputations: () => void;
|
|
166
|
+
} & {
|
|
167
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
168
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
169
|
+
};
|
|
170
|
+
export declare const selectCustomerPointsProgram: (orderType: OrderType | null) => ((state: {
|
|
171
|
+
alerts: import("@open-tender/types").Alerts;
|
|
172
|
+
allergens: import("./allergens").AllergensState;
|
|
173
|
+
arrivals: import("./arrivals").ArrivalsState;
|
|
174
|
+
cartSummary: import("./cartSummary").CartSummaryState;
|
|
175
|
+
checkout: import("./checkout").CheckoutState;
|
|
176
|
+
config: import("./config").ConfigState;
|
|
177
|
+
customer: CustomerState;
|
|
178
|
+
customerIdentify: import("./customerIdentify").CustomerIdentifyState;
|
|
179
|
+
deals: import("./deals").DealsState;
|
|
180
|
+
discounts: import("./discounts").DiscountsState;
|
|
181
|
+
errorAlerts: import("./errorAlerts").ErrorAlertsState;
|
|
182
|
+
kds: import("./kds").KdsState;
|
|
183
|
+
kiosk: import("./kiosk").KioskState;
|
|
184
|
+
menu: import("./menu").MenuState;
|
|
185
|
+
menuPages: import("./menuPages").MenuPagesState;
|
|
186
|
+
modal: import("./modal").ModalState;
|
|
187
|
+
notifications: import("@open-tender/types").Notifications;
|
|
188
|
+
offlineAuths: import("./offlineAuths").OfflineAuthsState;
|
|
189
|
+
order: import("./order").OrderState;
|
|
190
|
+
pos: import("./pos").PosState;
|
|
191
|
+
punches: import("./punches").PunchesState;
|
|
192
|
+
refund: import("./refund").RefundState;
|
|
193
|
+
sendReceipt: import("./sendReceipt").SendReceiptState;
|
|
194
|
+
settings: import("./settings").SettingsState;
|
|
195
|
+
sidebar: import("./sidebar").SidebarState;
|
|
196
|
+
surcharges: import("./surcharges").SurchargesState;
|
|
197
|
+
taxes: import("./taxes").TaxesState;
|
|
198
|
+
idle: import("./idle").IdleState;
|
|
199
|
+
tags: import("./tags").TagsState;
|
|
200
|
+
}) => import("@open-tender/types").LoyaltyProgram | null) & {
|
|
201
|
+
clearCache: () => void;
|
|
202
|
+
resultsCount: () => number;
|
|
203
|
+
resetResultsCount: () => void;
|
|
204
|
+
} & {
|
|
205
|
+
resultFunc: (resultFuncArgs_0: {
|
|
206
|
+
loyaltyPrograms: LoyaltyPrograms;
|
|
207
|
+
}) => import("@open-tender/types").LoyaltyProgram | null;
|
|
208
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
209
|
+
loyaltyPrograms: LoyaltyPrograms;
|
|
210
|
+
}) => import("@open-tender/types").LoyaltyProgram | null) & {
|
|
211
|
+
clearCache: () => void;
|
|
212
|
+
resultsCount: () => number;
|
|
213
|
+
resetResultsCount: () => void;
|
|
214
|
+
};
|
|
215
|
+
lastResult: () => import("@open-tender/types").LoyaltyProgram | null;
|
|
216
|
+
dependencies: [(state: AppState) => {
|
|
217
|
+
loyaltyPrograms: LoyaltyPrograms;
|
|
218
|
+
}];
|
|
219
|
+
recomputations: () => number;
|
|
220
|
+
resetRecomputations: () => void;
|
|
221
|
+
dependencyRecomputations: () => number;
|
|
222
|
+
resetDependencyRecomputations: () => void;
|
|
223
|
+
} & {
|
|
224
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
225
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
226
|
+
};
|
|
227
|
+
export declare const selectCustomerPoints: (orderType: OrderType | null) => (state: AppState) => {
|
|
228
|
+
name: string;
|
|
229
|
+
points: `${number}.${number}` | null;
|
|
230
|
+
} | null;
|
|
231
|
+
export declare const selectPointsProgram: (state: AppState) => import("@open-tender/types").LoyaltyProgram | null;
|
|
90
232
|
export declare const customerReducer: import("redux").Reducer<CustomerState>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.customerReducer = exports.selectCustomerLoyalty = exports.selectCustomerRewards = exports.selectCustomerOrders = exports.selectCustomerGiftCards = exports.selectCustomerFavorites = exports.selectCustomerDeals = exports.selectCustomerAccount = exports.selectCustomer = exports.resetCustomer = exports.fetchCustomer = exports.CustomerActionType = void 0;
|
|
3
|
+
exports.customerReducer = exports.selectPointsProgram = exports.selectCustomerPoints = exports.selectCustomerPointsProgram = exports.selectCustomerLoyaltyProgram = exports.selectCustomerLoyalty = exports.selectCustomerLoyaltySummary = exports.selectCustomerRewards = exports.selectCustomerOrders = exports.selectCustomerGiftCards = exports.selectCustomerFavorites = exports.selectCustomerDeals = exports.selectCustomerAccount = exports.selectCustomer = exports.resetCustomer = exports.fetchCustomer = exports.CustomerActionType = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var toolkit_1 = require("@reduxjs/toolkit");
|
|
6
6
|
var types_1 = require("./types");
|
|
@@ -87,7 +87,7 @@ var selectCustomerOrders = function (state) { return state.customer.orders; };
|
|
|
87
87
|
exports.selectCustomerOrders = selectCustomerOrders;
|
|
88
88
|
var selectCustomerRewards = function (state) { return state.customer.rewards; };
|
|
89
89
|
exports.selectCustomerRewards = selectCustomerRewards;
|
|
90
|
-
exports.
|
|
90
|
+
exports.selectCustomerLoyaltySummary = (0, toolkit_1.createSelector)(function (state) {
|
|
91
91
|
var loyalty = state.customer.loyalty;
|
|
92
92
|
return loyalty[0] || null;
|
|
93
93
|
}, function (loyaltyProgram) {
|
|
@@ -109,4 +109,45 @@ exports.selectCustomerLoyalty = (0, toolkit_1.createSelector)(function (state) {
|
|
|
109
109
|
tier: tier
|
|
110
110
|
};
|
|
111
111
|
});
|
|
112
|
+
var selectCustomerLoyalty = function (state) { return state.customer.loyalty; };
|
|
113
|
+
exports.selectCustomerLoyalty = selectCustomerLoyalty;
|
|
114
|
+
exports.selectCustomerLoyaltyProgram = (0, toolkit_1.createSelector)(function (state) {
|
|
115
|
+
var _a = state.customer, entities = _a.loyalty, loading = _a.loading, error = _a.error;
|
|
116
|
+
return { entities: entities, loading: loading, error: error };
|
|
117
|
+
}, function (_a) {
|
|
118
|
+
var entities = _a.entities, loading = _a.loading, error = _a.error;
|
|
119
|
+
var programs = entities.filter(function (i) { return i.earn_order_type === null || i.earn_order_type === 'OLO'; });
|
|
120
|
+
var program = programs.length ? programs[0] : null;
|
|
121
|
+
return { program: program, loading: loading, error: error };
|
|
122
|
+
});
|
|
123
|
+
var selectCustomerPointsProgram = function (orderType) {
|
|
124
|
+
return (0, toolkit_1.createSelector)(function (state) {
|
|
125
|
+
var loyaltyPrograms = state.customer.loyalty;
|
|
126
|
+
return { loyaltyPrograms: loyaltyPrograms };
|
|
127
|
+
}, function (_a) {
|
|
128
|
+
var loyaltyPrograms = _a.loyaltyPrograms;
|
|
129
|
+
if (!loyaltyPrograms)
|
|
130
|
+
return null;
|
|
131
|
+
var programs = loyaltyPrograms.filter(function (i) {
|
|
132
|
+
var _a;
|
|
133
|
+
return ((_a = i.perk) === null || _a === void 0 ? void 0 : _a.loyalty_perk) === 'BANKABLE_POINTS' &&
|
|
134
|
+
(i.earn_order_type === null || i.earn_order_type === orderType);
|
|
135
|
+
});
|
|
136
|
+
return programs.length ? programs[0] : null;
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
exports.selectCustomerPointsProgram = selectCustomerPointsProgram;
|
|
140
|
+
var selectCustomerPoints = function (orderType) { return function (state) {
|
|
141
|
+
var program = (0, exports.selectCustomerPointsProgram)(orderType)(state);
|
|
142
|
+
if (!program || !program.perk)
|
|
143
|
+
return null;
|
|
144
|
+
var spend_name = program.spend_name, perk = program.perk;
|
|
145
|
+
return { name: spend_name, points: perk.credit };
|
|
146
|
+
}; };
|
|
147
|
+
exports.selectCustomerPoints = selectCustomerPoints;
|
|
148
|
+
var selectPointsProgram = function (state) {
|
|
149
|
+
var orderType = state.order.orderType;
|
|
150
|
+
return orderType ? (0, exports.selectCustomerPointsProgram)(orderType)(state) : null;
|
|
151
|
+
};
|
|
152
|
+
exports.selectPointsProgram = selectPointsProgram;
|
|
112
153
|
exports.customerReducer = CustomerSlice.reducer;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LoyaltyProgram } from '@open-tender/types';
|
|
2
2
|
import { AccountLoyaltyProps } from '@open-tender/ui';
|
|
3
3
|
import { ReactNode } from 'react';
|
|
4
|
-
declare const AccountLoyalty: ({
|
|
5
|
-
|
|
4
|
+
declare const AccountLoyalty: ({ loyaltyProgram, navigate, children, navigateTo }: {
|
|
5
|
+
loyaltyProgram: LoyaltyProgram;
|
|
6
6
|
navigate: (route: string) => void;
|
|
7
7
|
children: (props: AccountLoyaltyProps) => ReactNode;
|
|
8
8
|
navigateTo?: string;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { useAppSelector } from '../app/hooks';
|
|
2
|
-
import { selectCustomer, selectKioskConfig } from '../slices';
|
|
2
|
+
import { selectCustomer, selectKiosk, selectKioskConfig } from '../slices';
|
|
3
3
|
var AccountLoyalty = function (_a) {
|
|
4
|
-
var
|
|
4
|
+
var _b;
|
|
5
|
+
var loyaltyProgram = _a.loyaltyProgram, navigate = _a.navigate, children = _a.children, navigateTo = _a.navigateTo;
|
|
6
|
+
var store = useAppSelector(selectKiosk).store;
|
|
5
7
|
var config = useAppSelector(selectKioskConfig).accountLoyalty;
|
|
6
8
|
var account = useAppSelector(selectCustomer).account;
|
|
9
|
+
var hasLoyalty = (_b = store === null || store === void 0 ? void 0 : store.has_loyalty) !== null && _b !== void 0 ? _b : false;
|
|
7
10
|
var startOrder = function () { return navigate(navigateTo !== null && navigateTo !== void 0 ? navigateTo : '/menu'); };
|
|
8
11
|
var handlers = { startOrder: startOrder };
|
|
9
|
-
if (!config || !account || !
|
|
12
|
+
if (!config || !account || !loyaltyProgram || !hasLoyalty)
|
|
10
13
|
return null;
|
|
11
|
-
return children({ config: config, handlers: handlers, account: account,
|
|
14
|
+
return children({ config: config, handlers: handlers, account: account, loyaltyProgram: loyaltyProgram });
|
|
12
15
|
};
|
|
13
16
|
export default AccountLoyalty;
|
|
@@ -2,7 +2,7 @@ import { __assign } from "tslib";
|
|
|
2
2
|
import { makeOrderItem, rehydrateOrderItem, useOrderItem } from '@open-tender/utils';
|
|
3
3
|
import { memo, useMemo } from 'react';
|
|
4
4
|
import { useAppDispatch, useAppSelector } from '../app/hooks';
|
|
5
|
-
import { selectCartCounts, selectKioskApi, selectKioskConfig, selectMenu, selectStoreSettings, setCurrentItem } from '../slices';
|
|
5
|
+
import { selectCartCounts, selectKioskApi, selectKioskConfig, selectMenu, selectPointsProgram, selectStoreSettings, setCurrentItem } from '../slices';
|
|
6
6
|
var CategoryItem = function (_a) {
|
|
7
7
|
var item = _a.item, favorite = _a.favorite, allergenAlerts = _a.allergenAlerts, placeholder = _a.placeholder, navigate = _a.navigate, children = _a.children;
|
|
8
8
|
var dispatch = useAppDispatch();
|
|
@@ -11,7 +11,8 @@ var CategoryItem = function (_a) {
|
|
|
11
11
|
var _b = useAppSelector(selectStoreSettings), display_cals = _b.display_cals, navigation_page = _b.navigation_page;
|
|
12
12
|
var soldOut = useAppSelector(selectMenu).soldOut;
|
|
13
13
|
var cartCounts = useAppSelector(selectCartCounts);
|
|
14
|
-
var
|
|
14
|
+
var pointsProgram = useAppSelector(selectPointsProgram);
|
|
15
|
+
var hasPoints = !!pointsProgram;
|
|
15
16
|
var displaySettings = {};
|
|
16
17
|
var _c = displaySettings || {}, _d = _c.calories, showCals = _d === void 0 ? false : _d, _e = _c.tags, showTags = _e === void 0 ? false : _e, _f = _c.allergens, showAllergens = _f === void 0 ? false : _f;
|
|
17
18
|
var showDesc = 'SHOW';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Allergens, Customer, CustomerEndpoints, CustomerEntities, Discounts, Favorites, GiftCards,
|
|
1
|
+
import { Allergens, Customer, CustomerEndpoints, CustomerEntities, Discounts, Favorites, GiftCards, LoyaltyPrograms, LoyaltyProgramSummary, Orders, OrderType, RequestError, RequestStatus } from '@open-tender/types';
|
|
2
2
|
import { AppState } from '../app';
|
|
3
3
|
export interface CustomerState {
|
|
4
4
|
account: Customer | null;
|
|
@@ -36,7 +36,7 @@ export declare const selectCustomerFavorites: (state: AppState) => Favorites;
|
|
|
36
36
|
export declare const selectCustomerGiftCards: (state: AppState) => GiftCards;
|
|
37
37
|
export declare const selectCustomerOrders: (state: AppState) => Orders;
|
|
38
38
|
export declare const selectCustomerRewards: (state: AppState) => Discounts;
|
|
39
|
-
export declare const
|
|
39
|
+
export declare const selectCustomerLoyaltySummary: ((state: {
|
|
40
40
|
alerts: import("@open-tender/types").Alerts;
|
|
41
41
|
allergens: import("./allergens").AllergensState;
|
|
42
42
|
arrivals: import("./arrivals").ArrivalsState;
|
|
@@ -87,4 +87,146 @@ export declare const selectCustomerLoyalty: ((state: {
|
|
|
87
87
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
88
88
|
memoize: typeof import("reselect").weakMapMemoize;
|
|
89
89
|
};
|
|
90
|
+
export declare const selectCustomerLoyalty: (state: AppState) => LoyaltyPrograms;
|
|
91
|
+
export declare const selectCustomerLoyaltyProgram: ((state: {
|
|
92
|
+
alerts: import("@open-tender/types").Alerts;
|
|
93
|
+
allergens: import("./allergens").AllergensState;
|
|
94
|
+
arrivals: import("./arrivals").ArrivalsState;
|
|
95
|
+
cartSummary: import("./cartSummary").CartSummaryState;
|
|
96
|
+
checkout: import("./checkout").CheckoutState;
|
|
97
|
+
config: import("./config").ConfigState;
|
|
98
|
+
customer: CustomerState;
|
|
99
|
+
customerIdentify: import("./customerIdentify").CustomerIdentifyState;
|
|
100
|
+
deals: import("./deals").DealsState;
|
|
101
|
+
discounts: import("./discounts").DiscountsState;
|
|
102
|
+
errorAlerts: import("./errorAlerts").ErrorAlertsState;
|
|
103
|
+
kds: import("./kds").KdsState;
|
|
104
|
+
kiosk: import("./kiosk").KioskState;
|
|
105
|
+
menu: import("./menu").MenuState;
|
|
106
|
+
menuPages: import("./menuPages").MenuPagesState;
|
|
107
|
+
modal: import("./modal").ModalState;
|
|
108
|
+
notifications: import("@open-tender/types").Notifications;
|
|
109
|
+
offlineAuths: import("./offlineAuths").OfflineAuthsState;
|
|
110
|
+
order: import("./order").OrderState;
|
|
111
|
+
pos: import("./pos").PosState;
|
|
112
|
+
punches: import("./punches").PunchesState;
|
|
113
|
+
refund: import("./refund").RefundState;
|
|
114
|
+
sendReceipt: import("./sendReceipt").SendReceiptState;
|
|
115
|
+
settings: import("./settings").SettingsState;
|
|
116
|
+
sidebar: import("./sidebar").SidebarState;
|
|
117
|
+
surcharges: import("./surcharges").SurchargesState;
|
|
118
|
+
taxes: import("./taxes").TaxesState;
|
|
119
|
+
idle: import("./idle").IdleState;
|
|
120
|
+
tags: import("./tags").TagsState;
|
|
121
|
+
}) => {
|
|
122
|
+
program: import("@open-tender/types").LoyaltyProgram | null;
|
|
123
|
+
loading: RequestStatus;
|
|
124
|
+
error: RequestError;
|
|
125
|
+
}) & {
|
|
126
|
+
clearCache: () => void;
|
|
127
|
+
resultsCount: () => number;
|
|
128
|
+
resetResultsCount: () => void;
|
|
129
|
+
} & {
|
|
130
|
+
resultFunc: (resultFuncArgs_0: {
|
|
131
|
+
entities: LoyaltyPrograms;
|
|
132
|
+
loading: RequestStatus;
|
|
133
|
+
error: RequestError;
|
|
134
|
+
}) => {
|
|
135
|
+
program: import("@open-tender/types").LoyaltyProgram | null;
|
|
136
|
+
loading: RequestStatus;
|
|
137
|
+
error: RequestError;
|
|
138
|
+
};
|
|
139
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
140
|
+
entities: LoyaltyPrograms;
|
|
141
|
+
loading: RequestStatus;
|
|
142
|
+
error: RequestError;
|
|
143
|
+
}) => {
|
|
144
|
+
program: import("@open-tender/types").LoyaltyProgram | null;
|
|
145
|
+
loading: RequestStatus;
|
|
146
|
+
error: RequestError;
|
|
147
|
+
}) & {
|
|
148
|
+
clearCache: () => void;
|
|
149
|
+
resultsCount: () => number;
|
|
150
|
+
resetResultsCount: () => void;
|
|
151
|
+
};
|
|
152
|
+
lastResult: () => {
|
|
153
|
+
program: import("@open-tender/types").LoyaltyProgram | null;
|
|
154
|
+
loading: RequestStatus;
|
|
155
|
+
error: RequestError;
|
|
156
|
+
};
|
|
157
|
+
dependencies: [(state: AppState) => {
|
|
158
|
+
entities: LoyaltyPrograms;
|
|
159
|
+
loading: RequestStatus;
|
|
160
|
+
error: RequestError;
|
|
161
|
+
}];
|
|
162
|
+
recomputations: () => number;
|
|
163
|
+
resetRecomputations: () => void;
|
|
164
|
+
dependencyRecomputations: () => number;
|
|
165
|
+
resetDependencyRecomputations: () => void;
|
|
166
|
+
} & {
|
|
167
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
168
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
169
|
+
};
|
|
170
|
+
export declare const selectCustomerPointsProgram: (orderType: OrderType | null) => ((state: {
|
|
171
|
+
alerts: import("@open-tender/types").Alerts;
|
|
172
|
+
allergens: import("./allergens").AllergensState;
|
|
173
|
+
arrivals: import("./arrivals").ArrivalsState;
|
|
174
|
+
cartSummary: import("./cartSummary").CartSummaryState;
|
|
175
|
+
checkout: import("./checkout").CheckoutState;
|
|
176
|
+
config: import("./config").ConfigState;
|
|
177
|
+
customer: CustomerState;
|
|
178
|
+
customerIdentify: import("./customerIdentify").CustomerIdentifyState;
|
|
179
|
+
deals: import("./deals").DealsState;
|
|
180
|
+
discounts: import("./discounts").DiscountsState;
|
|
181
|
+
errorAlerts: import("./errorAlerts").ErrorAlertsState;
|
|
182
|
+
kds: import("./kds").KdsState;
|
|
183
|
+
kiosk: import("./kiosk").KioskState;
|
|
184
|
+
menu: import("./menu").MenuState;
|
|
185
|
+
menuPages: import("./menuPages").MenuPagesState;
|
|
186
|
+
modal: import("./modal").ModalState;
|
|
187
|
+
notifications: import("@open-tender/types").Notifications;
|
|
188
|
+
offlineAuths: import("./offlineAuths").OfflineAuthsState;
|
|
189
|
+
order: import("./order").OrderState;
|
|
190
|
+
pos: import("./pos").PosState;
|
|
191
|
+
punches: import("./punches").PunchesState;
|
|
192
|
+
refund: import("./refund").RefundState;
|
|
193
|
+
sendReceipt: import("./sendReceipt").SendReceiptState;
|
|
194
|
+
settings: import("./settings").SettingsState;
|
|
195
|
+
sidebar: import("./sidebar").SidebarState;
|
|
196
|
+
surcharges: import("./surcharges").SurchargesState;
|
|
197
|
+
taxes: import("./taxes").TaxesState;
|
|
198
|
+
idle: import("./idle").IdleState;
|
|
199
|
+
tags: import("./tags").TagsState;
|
|
200
|
+
}) => import("@open-tender/types").LoyaltyProgram | null) & {
|
|
201
|
+
clearCache: () => void;
|
|
202
|
+
resultsCount: () => number;
|
|
203
|
+
resetResultsCount: () => void;
|
|
204
|
+
} & {
|
|
205
|
+
resultFunc: (resultFuncArgs_0: {
|
|
206
|
+
loyaltyPrograms: LoyaltyPrograms;
|
|
207
|
+
}) => import("@open-tender/types").LoyaltyProgram | null;
|
|
208
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
209
|
+
loyaltyPrograms: LoyaltyPrograms;
|
|
210
|
+
}) => import("@open-tender/types").LoyaltyProgram | null) & {
|
|
211
|
+
clearCache: () => void;
|
|
212
|
+
resultsCount: () => number;
|
|
213
|
+
resetResultsCount: () => void;
|
|
214
|
+
};
|
|
215
|
+
lastResult: () => import("@open-tender/types").LoyaltyProgram | null;
|
|
216
|
+
dependencies: [(state: AppState) => {
|
|
217
|
+
loyaltyPrograms: LoyaltyPrograms;
|
|
218
|
+
}];
|
|
219
|
+
recomputations: () => number;
|
|
220
|
+
resetRecomputations: () => void;
|
|
221
|
+
dependencyRecomputations: () => number;
|
|
222
|
+
resetDependencyRecomputations: () => void;
|
|
223
|
+
} & {
|
|
224
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
225
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
226
|
+
};
|
|
227
|
+
export declare const selectCustomerPoints: (orderType: OrderType | null) => (state: AppState) => {
|
|
228
|
+
name: string;
|
|
229
|
+
points: `${number}.${number}` | null;
|
|
230
|
+
} | null;
|
|
231
|
+
export declare const selectPointsProgram: (state: AppState) => import("@open-tender/types").LoyaltyProgram | null;
|
|
90
232
|
export declare const customerReducer: import("redux").Reducer<CustomerState>;
|
|
@@ -77,7 +77,7 @@ export var selectCustomerGiftCards = function (state) {
|
|
|
77
77
|
};
|
|
78
78
|
export var selectCustomerOrders = function (state) { return state.customer.orders; };
|
|
79
79
|
export var selectCustomerRewards = function (state) { return state.customer.rewards; };
|
|
80
|
-
export var
|
|
80
|
+
export var selectCustomerLoyaltySummary = createSelector(function (state) {
|
|
81
81
|
var loyalty = state.customer.loyalty;
|
|
82
82
|
return loyalty[0] || null;
|
|
83
83
|
}, function (loyaltyProgram) {
|
|
@@ -99,4 +99,41 @@ export var selectCustomerLoyalty = createSelector(function (state) {
|
|
|
99
99
|
tier: tier
|
|
100
100
|
};
|
|
101
101
|
});
|
|
102
|
+
export var selectCustomerLoyalty = function (state) { return state.customer.loyalty; };
|
|
103
|
+
export var selectCustomerLoyaltyProgram = createSelector(function (state) {
|
|
104
|
+
var _a = state.customer, entities = _a.loyalty, loading = _a.loading, error = _a.error;
|
|
105
|
+
return { entities: entities, loading: loading, error: error };
|
|
106
|
+
}, function (_a) {
|
|
107
|
+
var entities = _a.entities, loading = _a.loading, error = _a.error;
|
|
108
|
+
var programs = entities.filter(function (i) { return i.earn_order_type === null || i.earn_order_type === 'OLO'; });
|
|
109
|
+
var program = programs.length ? programs[0] : null;
|
|
110
|
+
return { program: program, loading: loading, error: error };
|
|
111
|
+
});
|
|
112
|
+
export var selectCustomerPointsProgram = function (orderType) {
|
|
113
|
+
return createSelector(function (state) {
|
|
114
|
+
var loyaltyPrograms = state.customer.loyalty;
|
|
115
|
+
return { loyaltyPrograms: loyaltyPrograms };
|
|
116
|
+
}, function (_a) {
|
|
117
|
+
var loyaltyPrograms = _a.loyaltyPrograms;
|
|
118
|
+
if (!loyaltyPrograms)
|
|
119
|
+
return null;
|
|
120
|
+
var programs = loyaltyPrograms.filter(function (i) {
|
|
121
|
+
var _a;
|
|
122
|
+
return ((_a = i.perk) === null || _a === void 0 ? void 0 : _a.loyalty_perk) === 'BANKABLE_POINTS' &&
|
|
123
|
+
(i.earn_order_type === null || i.earn_order_type === orderType);
|
|
124
|
+
});
|
|
125
|
+
return programs.length ? programs[0] : null;
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
export var selectCustomerPoints = function (orderType) { return function (state) {
|
|
129
|
+
var program = selectCustomerPointsProgram(orderType)(state);
|
|
130
|
+
if (!program || !program.perk)
|
|
131
|
+
return null;
|
|
132
|
+
var spend_name = program.spend_name, perk = program.perk;
|
|
133
|
+
return { name: spend_name, points: perk.credit };
|
|
134
|
+
}; };
|
|
135
|
+
export var selectPointsProgram = function (state) {
|
|
136
|
+
var orderType = state.order.orderType;
|
|
137
|
+
return orderType ? selectCustomerPointsProgram(orderType)(state) : null;
|
|
138
|
+
};
|
|
102
139
|
export var customerReducer = CustomerSlice.reducer;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@open-tender/store",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.237",
|
|
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",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"peerDependencies": {
|
|
63
63
|
"@emotion/react": "^11.11.1",
|
|
64
64
|
"@open-tender/types": "^0.4.98",
|
|
65
|
-
"@open-tender/ui": "^0.4.
|
|
65
|
+
"@open-tender/ui": "^0.4.31",
|
|
66
66
|
"@open-tender/utils": "^0.4.71",
|
|
67
67
|
"@reduxjs/toolkit": "^2.0.1",
|
|
68
68
|
"date-fns": "2.30.0",
|