@open-tender/store 1.1.48 → 1.1.50

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 (39) hide show
  1. package/LICENSE.md +21 -21
  2. package/README.md +3 -3
  3. package/dist/cjs/app/hooks.d.ts +1 -0
  4. package/dist/cjs/app/store.d.ts +4 -0
  5. package/dist/cjs/app/store.js +1 -0
  6. package/dist/cjs/components/MadeForNotes.d.ts +3 -7
  7. package/dist/cjs/components/MadeForNotes.js +7 -9
  8. package/dist/cjs/components/PromoCode.d.ts +3 -3
  9. package/dist/cjs/components/PromoCode.js +7 -5
  10. package/dist/cjs/services/api.d.ts +2 -1
  11. package/dist/cjs/services/api.js +3 -0
  12. package/dist/cjs/slices/index.d.ts +1 -0
  13. package/dist/cjs/slices/index.js +1 -0
  14. package/dist/cjs/slices/kiosk.d.ts +5 -0
  15. package/dist/cjs/slices/menuPages.d.ts +1 -0
  16. package/dist/cjs/slices/order.d.ts +4 -0
  17. package/dist/cjs/slices/sendReceipt.d.ts +25 -0
  18. package/dist/cjs/slices/sendReceipt.js +57 -0
  19. package/dist/cjs/slices/types.d.ts +1 -0
  20. package/dist/cjs/slices/types.js +1 -0
  21. package/dist/esm/app/hooks.d.ts +1 -0
  22. package/dist/esm/app/store.d.ts +4 -0
  23. package/dist/esm/app/store.js +2 -1
  24. package/dist/esm/components/MadeForNotes.d.ts +3 -7
  25. package/dist/esm/components/MadeForNotes.js +8 -10
  26. package/dist/esm/components/PromoCode.d.ts +3 -3
  27. package/dist/esm/components/PromoCode.js +8 -6
  28. package/dist/esm/services/api.d.ts +2 -1
  29. package/dist/esm/services/api.js +3 -0
  30. package/dist/esm/slices/index.d.ts +1 -0
  31. package/dist/esm/slices/index.js +1 -0
  32. package/dist/esm/slices/kiosk.d.ts +5 -0
  33. package/dist/esm/slices/menuPages.d.ts +1 -0
  34. package/dist/esm/slices/order.d.ts +4 -0
  35. package/dist/esm/slices/sendReceipt.d.ts +25 -0
  36. package/dist/esm/slices/sendReceipt.js +53 -0
  37. package/dist/esm/slices/types.d.ts +1 -0
  38. package/dist/esm/slices/types.js +1 -0
  39. package/package.json +78 -75
package/LICENSE.md CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2020 Open Tender Inc.
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2020 Open Tender Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,3 @@
1
- # Open Tender Store
2
-
3
- A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our in-store POS API.
1
+ # Open Tender Store
2
+
3
+ A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our in-store POS API.
@@ -22,6 +22,7 @@ export declare const useAppDispatch: () => import("redux-thunk").ThunkDispatch<{
22
22
  pos: import("..").PosState;
23
23
  punches: import("..").PunchesState;
24
24
  refund: import("..").RefundState;
25
+ sendReceipt: import("..").SendReceiptState;
25
26
  settings: import("..").SettingsState;
26
27
  sidebar: import("..").SidebarState;
27
28
  surcharges: import("..").SurchargesState;
@@ -21,6 +21,7 @@ export declare const appReducer: import("redux").Reducer<{
21
21
  pos: import("../slices").PosState;
22
22
  punches: import("../slices").PunchesState;
23
23
  refund: import("../slices").RefundState;
24
+ sendReceipt: import("../slices").SendReceiptState;
24
25
  settings: import("../slices").SettingsState;
25
26
  sidebar: import("../slices").SidebarState;
26
27
  surcharges: import("../slices").SurchargesState;
@@ -47,6 +48,7 @@ export declare const appReducer: import("redux").Reducer<{
47
48
  pos: import("../slices").PosState | undefined;
48
49
  punches: import("../slices").PunchesState | undefined;
49
50
  refund: import("../slices").RefundState | undefined;
51
+ sendReceipt: import("../slices").SendReceiptState | undefined;
50
52
  settings: import("../slices").SettingsState | undefined;
51
53
  sidebar: import("../slices").SidebarState | undefined;
52
54
  surcharges: import("../slices").SurchargesState | undefined;
@@ -75,6 +77,7 @@ declare const store: import("@reduxjs/toolkit").EnhancedStore<{
75
77
  pos: import("../slices").PosState;
76
78
  punches: import("../slices").PunchesState;
77
79
  refund: import("../slices").RefundState;
80
+ sendReceipt: import("../slices").SendReceiptState;
78
81
  settings: import("../slices").SettingsState;
79
82
  sidebar: import("../slices").SidebarState;
80
83
  surcharges: import("../slices").SurchargesState;
@@ -102,6 +105,7 @@ declare const store: import("@reduxjs/toolkit").EnhancedStore<{
102
105
  pos: import("../slices").PosState;
103
106
  punches: import("../slices").PunchesState;
104
107
  refund: import("../slices").RefundState;
108
+ sendReceipt: import("../slices").SendReceiptState;
105
109
  settings: import("../slices").SettingsState;
106
110
  sidebar: import("../slices").SidebarState;
107
111
  surcharges: import("../slices").SurchargesState;
@@ -25,6 +25,7 @@ exports.appReducer = (0, toolkit_1.combineReducers)({
25
25
  pos: slices_1.posReducer,
26
26
  punches: slices_1.punchesReducer,
27
27
  refund: slices_1.refundReducer,
28
+ sendReceipt: slices_1.sendReceiptReducer,
28
29
  settings: slices_1.settingsReducer,
29
30
  sidebar: slices_1.sidebarReducer,
30
31
  surcharges: slices_1.surchargesReducer,
@@ -1,16 +1,12 @@
1
- import { InputProps, MadeForNotesProps, TextAreaProps } from '@open-tender/ui';
1
+ import { KeypadProps, MadeForNotesProps } from '@open-tender/ui';
2
2
  import React, { ReactNode } from 'react';
3
- declare const MadeForNotes: ({ subtitle, hasMadeFor, madeFor, setMadeFor, hasNotes, notes, setNotes, close, children, InputView, TextAreaView }: {
3
+ declare const MadeForNotes: ({ subtitle, hasMadeFor, madeFor, setMadeFor, close, children, KeypadView }: {
4
4
  subtitle: string;
5
5
  hasMadeFor: boolean;
6
6
  madeFor: string | null;
7
7
  setMadeFor: (madeFor: string) => void;
8
- hasNotes: boolean;
9
- notes: string | null;
10
- setNotes: (notes: string) => void;
11
8
  close: () => void;
12
9
  children: (props: MadeForNotesProps) => ReactNode;
13
- InputView: (props: InputProps) => ReactNode;
14
- TextAreaView: (props: TextAreaProps) => ReactNode;
10
+ KeypadView: (props: KeypadProps) => ReactNode;
15
11
  }) => React.ReactNode;
16
12
  export default MadeForNotes;
@@ -4,25 +4,23 @@ var tslib_1 = require("tslib");
4
4
  var react_1 = tslib_1.__importStar(require("react"));
5
5
  var hooks_1 = require("../app/hooks");
6
6
  var slices_1 = require("../slices");
7
- var Input_1 = tslib_1.__importDefault(require("./Input"));
8
- var TextArea_1 = tslib_1.__importDefault(require("./TextArea"));
7
+ var Keypad_1 = tslib_1.__importDefault(require("./Keypad"));
9
8
  var MadeForNotes = function (_a) {
10
- var subtitle = _a.subtitle, hasMadeFor = _a.hasMadeFor, madeFor = _a.madeFor, setMadeFor = _a.setMadeFor, hasNotes = _a.hasNotes, notes = _a.notes, setNotes = _a.setNotes, close = _a.close, children = _a.children, InputView = _a.InputView, TextAreaView = _a.TextAreaView;
9
+ var subtitle = _a.subtitle, hasMadeFor = _a.hasMadeFor, madeFor = _a.madeFor, setMadeFor = _a.setMadeFor, close = _a.close, children = _a.children, KeypadView = _a.KeypadView;
11
10
  var _b = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), config = _b.madeForNotes, modalContentConfig = _b.modalContent;
12
11
  var handlers = { submit: close };
13
- var renderInput = (0, react_1.useCallback)(function (label, value, isRequired, style) { return (react_1.default.createElement(Input_1.default, { label: label, setValue: setMadeFor, value: value, isRequired: isRequired, style: style, children: InputView })); }, [setMadeFor, InputView]);
14
- var renderTextArea = (0, react_1.useCallback)(function (label, value, isRequired, style) { return (react_1.default.createElement(TextArea_1.default, { label: label, setValue: setNotes, value: value, isRequired: isRequired, style: style, children: TextAreaView })); }, [TextAreaView, setNotes]);
12
+ var keypadHandlers = (0, react_1.useMemo)(function () { return ({
13
+ change: setMadeFor
14
+ }); }, [setMadeFor]);
15
+ var renderKeypad = (0, react_1.useCallback)(function () { return (react_1.default.createElement(Keypad_1.default, { type: "default", handlers: keypadHandlers, value: madeFor !== null && madeFor !== void 0 ? madeFor : '', children: KeypadView })); }, [keypadHandlers, madeFor, KeypadView]);
15
16
  return children({
16
17
  config: config,
17
18
  handlers: handlers,
18
19
  subtitle: subtitle,
19
20
  hasMadeFor: hasMadeFor,
20
21
  madeFor: madeFor,
21
- hasNotes: hasNotes,
22
- notes: notes,
23
22
  modalContentConfig: modalContentConfig,
24
- renderInput: renderInput,
25
- renderTextArea: renderTextArea
23
+ renderKeypad: renderKeypad
26
24
  });
27
25
  };
28
26
  exports.default = MadeForNotes;
@@ -1,9 +1,9 @@
1
- import { ErrorMessageProps, InputProps, PromoCodeProps } from '@open-tender/ui';
1
+ import { ErrorMessageProps, KeypadProps, PromoCodeProps } from '@open-tender/ui';
2
2
  import React, { ReactNode } from 'react';
3
- declare const PromoCode: ({ close, children, InputView, ErrorMessageView }: {
3
+ declare const PromoCode: ({ close, children, KeypadView, ErrorMessageView }: {
4
4
  close: () => void;
5
5
  children: (props: PromoCodeProps) => ReactNode;
6
- InputView: (props: InputProps) => ReactNode;
6
+ KeypadView: (props: KeypadProps) => ReactNode;
7
7
  ErrorMessageView: (props: ErrorMessageProps) => ReactNode;
8
8
  }) => React.ReactNode;
9
9
  export default PromoCode;
@@ -6,9 +6,9 @@ var react_1 = tslib_1.__importStar(require("react"));
6
6
  var hooks_1 = require("../app/hooks");
7
7
  var slices_1 = require("../slices");
8
8
  var ErrorMessage_1 = tslib_1.__importDefault(require("./ErrorMessage"));
9
- var Input_1 = tslib_1.__importDefault(require("./Input"));
9
+ var Keypad_1 = tslib_1.__importDefault(require("./Keypad"));
10
10
  var PromoCode = function (_a) {
11
- var close = _a.close, children = _a.children, InputView = _a.InputView, ErrorMessageView = _a.ErrorMessageView;
11
+ var close = _a.close, children = _a.children, KeypadView = _a.KeypadView, ErrorMessageView = _a.ErrorMessageView;
12
12
  var dispatch = (0, hooks_1.useAppDispatch)();
13
13
  var _b = (0, react_1.useState)(''), promoCode = _b[0], setPromoCode = _b[1];
14
14
  var _c = (0, react_1.useState)(false), submitted = _c[0], setSubmitted = _c[1];
@@ -34,15 +34,17 @@ var PromoCode = function (_a) {
34
34
  }
35
35
  }, [submitted, isLoading, error, close]);
36
36
  var renderErrorMessage = (0, react_1.useCallback)(function (errMsg) { return (react_1.default.createElement(ErrorMessage_1.default, { content: errMsg, children: ErrorMessageView })); }, [ErrorMessageView]);
37
- var renderInput = (0, react_1.useCallback)(function (value, isRequired, style) { return (react_1.default.createElement(Input_1.default, { setValue: function (value) { return setPromoCode(value); }, value: value, isRequired: isRequired, style: style, children: InputView })); }, [InputView]);
37
+ var keypadHandlers = (0, react_1.useMemo)(function () { return ({
38
+ change: setPromoCode
39
+ }); }, [setPromoCode]);
40
+ var renderKeypad = (0, react_1.useCallback)(function () { return (react_1.default.createElement(Keypad_1.default, { type: "default", handlers: keypadHandlers, value: promoCode, children: KeypadView })); }, [keypadHandlers, promoCode, KeypadView]);
38
41
  return children({
39
42
  config: config,
40
43
  handlers: handlers,
41
- promoCode: promoCode,
42
44
  errMsg: errMsg,
43
45
  renderErrorMessage: renderErrorMessage,
44
46
  modalContentConfig: modalContentConfig,
45
- renderInput: renderInput
47
+ renderKeypad: renderKeypad
46
48
  });
47
49
  };
48
50
  exports.default = PromoCode;
@@ -1,4 +1,4 @@
1
- import { Arrivals, CheckoutTender, CustomerEndpoints, CustomerIdentifier, CustomerIdentify, Discount, Discounts, ItemTypes, Menu, Order, Orders, OrderCreatePos, OrderTender, OrderUpdate, OrderType, RequestedAt, RevenueCenter, SelectOptions, ServiceType, TicketUpdate, TicketsUpdate, TicketStatusUpdate, EntityType, KioskConfig, Store, Settings, InternalSettings, GiftCardCredit, GiftCardBalance, Employee, Punch, Employees, CashEvent, CashSummary, ErrorAlerts, ErrorAlert, OfflineAuths, OfflineAuthsResult, MenuColors, MenuPages, Surcharges, Taxes, CheckoutTenderPos, Refund, DeviceRead } from '@open-tender/types';
1
+ import { Arrivals, CheckoutTender, CustomerEndpoints, CustomerIdentifier, CustomerIdentify, Discount, Discounts, ItemTypes, Menu, Order, Orders, OrderCreatePos, OrderTender, OrderUpdate, OrderType, RequestedAt, RevenueCenter, SelectOptions, ServiceType, TicketUpdate, TicketsUpdate, TicketStatusUpdate, EntityType, KioskConfig, Store, Settings, InternalSettings, GiftCardCredit, GiftCardBalance, Employee, Punch, Employees, CashEvent, CashSummary, ErrorAlerts, ErrorAlert, OfflineAuths, OfflineAuthsResult, MenuColors, MenuPages, Surcharges, Taxes, CheckoutTenderPos, Refund, DeviceRead, OrderCreateSendReceipt } from '@open-tender/types';
2
2
  import { OrdersParams } from '../slices';
3
3
  export interface InitAPI {
4
4
  apiUrl: string;
@@ -60,6 +60,7 @@ declare class PosAPI {
60
60
  postChipDNACancel(): Promise<null>;
61
61
  postChipDNATmsUpdate(): Promise<null>;
62
62
  postIdentifyCustomer(data: CustomerIdentifier): Promise<CustomerIdentify>;
63
+ postSendReceipt(orderUuid: string, data: OrderCreateSendReceipt): Promise<void>;
63
64
  getCustomer(customerId: number, endpoints: CustomerEndpoints): Promise<any>;
64
65
  postOrderValidate(order: OrderCreatePos): Promise<Order>;
65
66
  postOrder(order: OrderCreatePos): Promise<Order>;
@@ -288,6 +288,9 @@ var PosAPI = /** @class */ (function () {
288
288
  PosAPI.prototype.postIdentifyCustomer = function (data) {
289
289
  return this.request("/identify-customer", 'POST', data);
290
290
  };
291
+ PosAPI.prototype.postSendReceipt = function (orderUuid, data) {
292
+ return this.request("/orders/".concat(orderUuid, "/send-receipt"), 'POST', data);
293
+ };
291
294
  PosAPI.prototype.getCustomer = function (customerId, endpoints) {
292
295
  var query = "endpoints=".concat(endpoints.join(','));
293
296
  return this.request("/customers/".concat(customerId, "?").concat(query));
@@ -19,6 +19,7 @@ export * from './order';
19
19
  export * from './pos';
20
20
  export * from './punches';
21
21
  export * from './refund';
22
+ export * from './sendReceipt';
22
23
  export * from './settings';
23
24
  export * from './sidebar';
24
25
  export * from './surcharges';
@@ -22,6 +22,7 @@ tslib_1.__exportStar(require("./order"), exports);
22
22
  tslib_1.__exportStar(require("./pos"), exports);
23
23
  tslib_1.__exportStar(require("./punches"), exports);
24
24
  tslib_1.__exportStar(require("./refund"), exports);
25
+ tslib_1.__exportStar(require("./sendReceipt"), exports);
25
26
  tslib_1.__exportStar(require("./settings"), exports);
26
27
  tslib_1.__exportStar(require("./sidebar"), exports);
27
28
  tslib_1.__exportStar(require("./surcharges"), exports);
@@ -62,6 +62,7 @@ export declare const selectKioskTerminal: ((state: {
62
62
  pos: import("./pos").PosState;
63
63
  punches: import("./punches").PunchesState;
64
64
  refund: import("./refund").RefundState;
65
+ sendReceipt: import("./sendReceipt").SendReceiptState;
65
66
  settings: import("./settings").SettingsState;
66
67
  sidebar: import("./sidebar").SidebarState;
67
68
  surcharges: import("./surcharges").SurchargesState;
@@ -118,6 +119,7 @@ export declare const selectKioskShowPrint: ((state: {
118
119
  pos: import("./pos").PosState;
119
120
  punches: import("./punches").PunchesState;
120
121
  refund: import("./refund").RefundState;
122
+ sendReceipt: import("./sendReceipt").SendReceiptState;
121
123
  settings: import("./settings").SettingsState;
122
124
  sidebar: import("./sidebar").SidebarState;
123
125
  surcharges: import("./surcharges").SurchargesState;
@@ -174,6 +176,7 @@ export declare const selectKioskApi: ((state: {
174
176
  pos: import("./pos").PosState;
175
177
  punches: import("./punches").PunchesState;
176
178
  refund: import("./refund").RefundState;
179
+ sendReceipt: import("./sendReceipt").SendReceiptState;
177
180
  settings: import("./settings").SettingsState;
178
181
  sidebar: import("./sidebar").SidebarState;
179
182
  surcharges: import("./surcharges").SurchargesState;
@@ -221,6 +224,7 @@ export declare const selectKioskConfig: ((state: {
221
224
  pos: import("./pos").PosState;
222
225
  punches: import("./punches").PunchesState;
223
226
  refund: import("./refund").RefundState;
227
+ sendReceipt: import("./sendReceipt").SendReceiptState;
224
228
  settings: import("./settings").SettingsState;
225
229
  sidebar: import("./sidebar").SidebarState;
226
230
  surcharges: import("./surcharges").SurchargesState;
@@ -268,6 +272,7 @@ export declare const selectKioskConfigScreen: (screen: string) => ((state: {
268
272
  pos: import("./pos").PosState;
269
273
  punches: import("./punches").PunchesState;
270
274
  refund: import("./refund").RefundState;
275
+ sendReceipt: import("./sendReceipt").SendReceiptState;
271
276
  settings: import("./settings").SettingsState;
272
277
  sidebar: import("./sidebar").SidebarState;
273
278
  surcharges: import("./surcharges").SurchargesState;
@@ -42,6 +42,7 @@ export declare const selectMenuPagesFiltered: ((state: {
42
42
  pos: import("./pos").PosState;
43
43
  punches: import("./punches").PunchesState;
44
44
  refund: import("./refund").RefundState;
45
+ sendReceipt: import("./sendReceipt").SendReceiptState;
45
46
  settings: import("./settings").SettingsState;
46
47
  sidebar: import("./sidebar").SidebarState;
47
48
  surcharges: import("./surcharges").SurchargesState;
@@ -85,6 +85,7 @@ export declare const selectCartIds: ((state: {
85
85
  pos: import("./pos").PosState;
86
86
  punches: import("./punches").PunchesState;
87
87
  refund: import("./refund").RefundState;
88
+ sendReceipt: import("./sendReceipt").SendReceiptState;
88
89
  settings: import("./settings").SettingsState;
89
90
  sidebar: import("./sidebar").SidebarState;
90
91
  surcharges: import("./surcharges").SurchargesState;
@@ -132,6 +133,7 @@ export declare const selectCartQuantity: ((state: {
132
133
  pos: import("./pos").PosState;
133
134
  punches: import("./punches").PunchesState;
134
135
  refund: import("./refund").RefundState;
136
+ sendReceipt: import("./sendReceipt").SendReceiptState;
135
137
  settings: import("./settings").SettingsState;
136
138
  sidebar: import("./sidebar").SidebarState;
137
139
  surcharges: import("./surcharges").SurchargesState;
@@ -179,6 +181,7 @@ export declare const selectCartTotal: ((state: {
179
181
  pos: import("./pos").PosState;
180
182
  punches: import("./punches").PunchesState;
181
183
  refund: import("./refund").RefundState;
184
+ sendReceipt: import("./sendReceipt").SendReceiptState;
182
185
  settings: import("./settings").SettingsState;
183
186
  sidebar: import("./sidebar").SidebarState;
184
187
  surcharges: import("./surcharges").SurchargesState;
@@ -226,6 +229,7 @@ export declare const selectCartTotals: ((state: {
226
229
  pos: import("./pos").PosState;
227
230
  punches: import("./punches").PunchesState;
228
231
  refund: import("./refund").RefundState;
232
+ sendReceipt: import("./sendReceipt").SendReceiptState;
229
233
  settings: import("./settings").SettingsState;
230
234
  sidebar: import("./sidebar").SidebarState;
231
235
  surcharges: import("./surcharges").SurchargesState;
@@ -0,0 +1,25 @@
1
+ import { OrderCreateSendReceipt, RequestError, RequestStatus } from '@open-tender/types';
2
+ import { AppState } from '../app';
3
+ export interface SendReceiptState {
4
+ loading: RequestStatus;
5
+ error: RequestError;
6
+ }
7
+ export declare enum SendReceiptActionType {
8
+ SendReceipt = "SendReceipt/sendReceipt"
9
+ }
10
+ export declare const sendReceipt: import("@reduxjs/toolkit").AsyncThunk<void, {
11
+ orderUuid: string;
12
+ data: OrderCreateSendReceipt;
13
+ }, {
14
+ state: AppState;
15
+ rejectValue: RequestError;
16
+ dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
17
+ extra?: unknown;
18
+ serializedErrorType?: unknown;
19
+ pendingMeta?: unknown;
20
+ fulfilledMeta?: unknown;
21
+ rejectedMeta?: unknown;
22
+ }>;
23
+ export declare const resetSendReceipt: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"sendReceipt/resetSendReceipt">;
24
+ export declare const selectSendReceipt: (state: AppState) => SendReceiptState;
25
+ export declare const sendReceiptReducer: import("redux").Reducer<SendReceiptState>;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendReceiptReducer = exports.selectSendReceipt = exports.resetSendReceipt = exports.sendReceipt = exports.SendReceiptActionType = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var toolkit_1 = require("@reduxjs/toolkit");
6
+ var types_1 = require("./types");
7
+ var initialState = {
8
+ loading: 'idle',
9
+ error: null
10
+ };
11
+ var SendReceiptActionType;
12
+ (function (SendReceiptActionType) {
13
+ SendReceiptActionType["SendReceipt"] = "SendReceipt/sendReceipt";
14
+ })(SendReceiptActionType || (exports.SendReceiptActionType = SendReceiptActionType = {}));
15
+ exports.sendReceipt = (0, toolkit_1.createAsyncThunk)(SendReceiptActionType.SendReceipt, function (_a, _b) { return tslib_1.__awaiter(void 0, [_a, _b], void 0, function (_c, _d) {
16
+ var api, err_1;
17
+ var orderUuid = _c.orderUuid, data = _c.data;
18
+ var getState = _d.getState, rejectWithValue = _d.rejectWithValue;
19
+ return tslib_1.__generator(this, function (_e) {
20
+ switch (_e.label) {
21
+ case 0:
22
+ _e.trys.push([0, 2, , 3]);
23
+ api = getState().config.api;
24
+ return [4 /*yield*/, api.postSendReceipt(orderUuid, data)];
25
+ case 1: return [2 /*return*/, _e.sent()];
26
+ case 2:
27
+ err_1 = _e.sent();
28
+ return [2 /*return*/, rejectWithValue(err_1)];
29
+ case 3: return [2 /*return*/];
30
+ }
31
+ });
32
+ }); });
33
+ var sendReceiptSlice = (0, toolkit_1.createSlice)({
34
+ name: types_1.ReducerType.SendReceipt,
35
+ initialState: initialState,
36
+ reducers: {
37
+ resetSendReceipt: function () { return initialState; }
38
+ },
39
+ extraReducers: function (builder) {
40
+ builder
41
+ .addCase(exports.sendReceipt.fulfilled, function (state) {
42
+ state.loading = 'idle';
43
+ state.error = null;
44
+ })
45
+ .addCase(exports.sendReceipt.pending, function (state) {
46
+ state.loading = 'pending';
47
+ })
48
+ .addCase(exports.sendReceipt.rejected, function (state, action) {
49
+ state.error = action.payload;
50
+ state.loading = 'idle';
51
+ });
52
+ }
53
+ });
54
+ exports.resetSendReceipt = sendReceiptSlice.actions.resetSendReceipt;
55
+ var selectSendReceipt = function (state) { return state.sendReceipt; };
56
+ exports.selectSendReceipt = selectSendReceipt;
57
+ exports.sendReceiptReducer = sendReceiptSlice.reducer;
@@ -22,6 +22,7 @@ export declare enum ReducerType {
22
22
  Pos = "pos",
23
23
  Punches = "punches",
24
24
  Refund = "refund",
25
+ SendReceipt = "sendReceipt",
25
26
  Settings = "settings",
26
27
  Sidebar = "sidebar",
27
28
  Surcharges = "surcharges",
@@ -26,6 +26,7 @@ var ReducerType;
26
26
  ReducerType["Pos"] = "pos";
27
27
  ReducerType["Punches"] = "punches";
28
28
  ReducerType["Refund"] = "refund";
29
+ ReducerType["SendReceipt"] = "sendReceipt";
29
30
  ReducerType["Settings"] = "settings";
30
31
  ReducerType["Sidebar"] = "sidebar";
31
32
  ReducerType["Surcharges"] = "surcharges";
@@ -22,6 +22,7 @@ export declare const useAppDispatch: () => import("redux-thunk").ThunkDispatch<{
22
22
  pos: import("..").PosState;
23
23
  punches: import("..").PunchesState;
24
24
  refund: import("..").RefundState;
25
+ sendReceipt: import("..").SendReceiptState;
25
26
  settings: import("..").SettingsState;
26
27
  sidebar: import("..").SidebarState;
27
28
  surcharges: import("..").SurchargesState;
@@ -21,6 +21,7 @@ export declare const appReducer: import("redux").Reducer<{
21
21
  pos: import("../slices").PosState;
22
22
  punches: import("../slices").PunchesState;
23
23
  refund: import("../slices").RefundState;
24
+ sendReceipt: import("../slices").SendReceiptState;
24
25
  settings: import("../slices").SettingsState;
25
26
  sidebar: import("../slices").SidebarState;
26
27
  surcharges: import("../slices").SurchargesState;
@@ -47,6 +48,7 @@ export declare const appReducer: import("redux").Reducer<{
47
48
  pos: import("../slices").PosState | undefined;
48
49
  punches: import("../slices").PunchesState | undefined;
49
50
  refund: import("../slices").RefundState | undefined;
51
+ sendReceipt: import("../slices").SendReceiptState | undefined;
50
52
  settings: import("../slices").SettingsState | undefined;
51
53
  sidebar: import("../slices").SidebarState | undefined;
52
54
  surcharges: import("../slices").SurchargesState | undefined;
@@ -75,6 +77,7 @@ declare const store: import("@reduxjs/toolkit").EnhancedStore<{
75
77
  pos: import("../slices").PosState;
76
78
  punches: import("../slices").PunchesState;
77
79
  refund: import("../slices").RefundState;
80
+ sendReceipt: import("../slices").SendReceiptState;
78
81
  settings: import("../slices").SettingsState;
79
82
  sidebar: import("../slices").SidebarState;
80
83
  surcharges: import("../slices").SurchargesState;
@@ -102,6 +105,7 @@ declare const store: import("@reduxjs/toolkit").EnhancedStore<{
102
105
  pos: import("../slices").PosState;
103
106
  punches: import("../slices").PunchesState;
104
107
  refund: import("../slices").RefundState;
108
+ sendReceipt: import("../slices").SendReceiptState;
105
109
  settings: import("../slices").SettingsState;
106
110
  sidebar: import("../slices").SidebarState;
107
111
  surcharges: import("../slices").SurchargesState;
@@ -1,5 +1,5 @@
1
1
  import { combineReducers, configureStore } from '@reduxjs/toolkit';
2
- import { alertsReducer, arrivalsReducer, cartSummaryReducer, checkoutReducer, configReducer, customerReducer, customerIdentifyReducer, dealsReducer, discountsReducer, errorAlertsReducer, kdsReducer, kioskReducer, menuReducer, menuPagesReducer, modalReducer, notificationsReducer, offlineAuthsReducer, orderReducer, posReducer, punchesReducer, refundReducer, settingsReducer, sidebarReducer, surchargesReducer, taxesReducer } from '../slices';
2
+ import { alertsReducer, arrivalsReducer, cartSummaryReducer, checkoutReducer, configReducer, customerReducer, customerIdentifyReducer, dealsReducer, discountsReducer, errorAlertsReducer, kdsReducer, kioskReducer, menuReducer, menuPagesReducer, modalReducer, notificationsReducer, offlineAuthsReducer, orderReducer, posReducer, punchesReducer, refundReducer, sendReceiptReducer, settingsReducer, sidebarReducer, surchargesReducer, taxesReducer } from '../slices';
3
3
  export var appReducer = combineReducers({
4
4
  alerts: alertsReducer,
5
5
  arrivals: arrivalsReducer,
@@ -22,6 +22,7 @@ export var appReducer = combineReducers({
22
22
  pos: posReducer,
23
23
  punches: punchesReducer,
24
24
  refund: refundReducer,
25
+ sendReceipt: sendReceiptReducer,
25
26
  settings: settingsReducer,
26
27
  sidebar: sidebarReducer,
27
28
  surcharges: surchargesReducer,
@@ -1,16 +1,12 @@
1
- import { InputProps, MadeForNotesProps, TextAreaProps } from '@open-tender/ui';
1
+ import { KeypadProps, MadeForNotesProps } from '@open-tender/ui';
2
2
  import React, { ReactNode } from 'react';
3
- declare const MadeForNotes: ({ subtitle, hasMadeFor, madeFor, setMadeFor, hasNotes, notes, setNotes, close, children, InputView, TextAreaView }: {
3
+ declare const MadeForNotes: ({ subtitle, hasMadeFor, madeFor, setMadeFor, close, children, KeypadView }: {
4
4
  subtitle: string;
5
5
  hasMadeFor: boolean;
6
6
  madeFor: string | null;
7
7
  setMadeFor: (madeFor: string) => void;
8
- hasNotes: boolean;
9
- notes: string | null;
10
- setNotes: (notes: string) => void;
11
8
  close: () => void;
12
9
  children: (props: MadeForNotesProps) => ReactNode;
13
- InputView: (props: InputProps) => ReactNode;
14
- TextAreaView: (props: TextAreaProps) => ReactNode;
10
+ KeypadView: (props: KeypadProps) => ReactNode;
15
11
  }) => React.ReactNode;
16
12
  export default MadeForNotes;
@@ -1,25 +1,23 @@
1
- import React, { useCallback } from 'react';
1
+ import React, { useCallback, useMemo } from 'react';
2
2
  import { useAppSelector } from '../app/hooks';
3
3
  import { selectKioskConfig } from '../slices';
4
- import { default as InputContainer } from './Input';
5
- import { default as TextAreaContainer } from './TextArea';
4
+ import { default as KeypadContainer } from './Keypad';
6
5
  var MadeForNotes = function (_a) {
7
- var subtitle = _a.subtitle, hasMadeFor = _a.hasMadeFor, madeFor = _a.madeFor, setMadeFor = _a.setMadeFor, hasNotes = _a.hasNotes, notes = _a.notes, setNotes = _a.setNotes, close = _a.close, children = _a.children, InputView = _a.InputView, TextAreaView = _a.TextAreaView;
6
+ var subtitle = _a.subtitle, hasMadeFor = _a.hasMadeFor, madeFor = _a.madeFor, setMadeFor = _a.setMadeFor, close = _a.close, children = _a.children, KeypadView = _a.KeypadView;
8
7
  var _b = useAppSelector(selectKioskConfig), config = _b.madeForNotes, modalContentConfig = _b.modalContent;
9
8
  var handlers = { submit: close };
10
- var renderInput = useCallback(function (label, value, isRequired, style) { return (React.createElement(InputContainer, { label: label, setValue: setMadeFor, value: value, isRequired: isRequired, style: style, children: InputView })); }, [setMadeFor, InputView]);
11
- var renderTextArea = useCallback(function (label, value, isRequired, style) { return (React.createElement(TextAreaContainer, { label: label, setValue: setNotes, value: value, isRequired: isRequired, style: style, children: TextAreaView })); }, [TextAreaView, setNotes]);
9
+ var keypadHandlers = useMemo(function () { return ({
10
+ change: setMadeFor
11
+ }); }, [setMadeFor]);
12
+ var renderKeypad = useCallback(function () { return (React.createElement(KeypadContainer, { type: "default", handlers: keypadHandlers, value: madeFor !== null && madeFor !== void 0 ? madeFor : '', children: KeypadView })); }, [keypadHandlers, madeFor, KeypadView]);
12
13
  return children({
13
14
  config: config,
14
15
  handlers: handlers,
15
16
  subtitle: subtitle,
16
17
  hasMadeFor: hasMadeFor,
17
18
  madeFor: madeFor,
18
- hasNotes: hasNotes,
19
- notes: notes,
20
19
  modalContentConfig: modalContentConfig,
21
- renderInput: renderInput,
22
- renderTextArea: renderTextArea
20
+ renderKeypad: renderKeypad
23
21
  });
24
22
  };
25
23
  export default MadeForNotes;
@@ -1,9 +1,9 @@
1
- import { ErrorMessageProps, InputProps, PromoCodeProps } from '@open-tender/ui';
1
+ import { ErrorMessageProps, KeypadProps, PromoCodeProps } from '@open-tender/ui';
2
2
  import React, { ReactNode } from 'react';
3
- declare const PromoCode: ({ close, children, InputView, ErrorMessageView }: {
3
+ declare const PromoCode: ({ close, children, KeypadView, ErrorMessageView }: {
4
4
  close: () => void;
5
5
  children: (props: PromoCodeProps) => ReactNode;
6
- InputView: (props: InputProps) => ReactNode;
6
+ KeypadView: (props: KeypadProps) => ReactNode;
7
7
  ErrorMessageView: (props: ErrorMessageProps) => ReactNode;
8
8
  }) => React.ReactNode;
9
9
  export default PromoCode;
@@ -1,11 +1,11 @@
1
1
  import { handleRespError } from '@open-tender/utils';
2
- import React, { useCallback, useEffect, useState } from 'react';
2
+ import React, { useCallback, useEffect, useMemo, useState } from 'react';
3
3
  import { useAppDispatch, useAppSelector } from '../app/hooks';
4
4
  import { addPromoCode, selectKioskConfig, selectOrder } from '../slices';
5
5
  import { default as ErrorMessageContainer } from './ErrorMessage';
6
- import { default as InputContainer } from './Input';
6
+ import { default as KeypadContainer } from './Keypad';
7
7
  var PromoCode = function (_a) {
8
- var close = _a.close, children = _a.children, InputView = _a.InputView, ErrorMessageView = _a.ErrorMessageView;
8
+ var close = _a.close, children = _a.children, KeypadView = _a.KeypadView, ErrorMessageView = _a.ErrorMessageView;
9
9
  var dispatch = useAppDispatch();
10
10
  var _b = useState(''), promoCode = _b[0], setPromoCode = _b[1];
11
11
  var _c = useState(false), submitted = _c[0], setSubmitted = _c[1];
@@ -31,15 +31,17 @@ var PromoCode = function (_a) {
31
31
  }
32
32
  }, [submitted, isLoading, error, close]);
33
33
  var renderErrorMessage = useCallback(function (errMsg) { return (React.createElement(ErrorMessageContainer, { content: errMsg, children: ErrorMessageView })); }, [ErrorMessageView]);
34
- var renderInput = useCallback(function (value, isRequired, style) { return (React.createElement(InputContainer, { setValue: function (value) { return setPromoCode(value); }, value: value, isRequired: isRequired, style: style, children: InputView })); }, [InputView]);
34
+ var keypadHandlers = useMemo(function () { return ({
35
+ change: setPromoCode
36
+ }); }, [setPromoCode]);
37
+ var renderKeypad = useCallback(function () { return (React.createElement(KeypadContainer, { type: "default", handlers: keypadHandlers, value: promoCode, children: KeypadView })); }, [keypadHandlers, promoCode, KeypadView]);
35
38
  return children({
36
39
  config: config,
37
40
  handlers: handlers,
38
- promoCode: promoCode,
39
41
  errMsg: errMsg,
40
42
  renderErrorMessage: renderErrorMessage,
41
43
  modalContentConfig: modalContentConfig,
42
- renderInput: renderInput
44
+ renderKeypad: renderKeypad
43
45
  });
44
46
  };
45
47
  export default PromoCode;
@@ -1,4 +1,4 @@
1
- import { Arrivals, CheckoutTender, CustomerEndpoints, CustomerIdentifier, CustomerIdentify, Discount, Discounts, ItemTypes, Menu, Order, Orders, OrderCreatePos, OrderTender, OrderUpdate, OrderType, RequestedAt, RevenueCenter, SelectOptions, ServiceType, TicketUpdate, TicketsUpdate, TicketStatusUpdate, EntityType, KioskConfig, Store, Settings, InternalSettings, GiftCardCredit, GiftCardBalance, Employee, Punch, Employees, CashEvent, CashSummary, ErrorAlerts, ErrorAlert, OfflineAuths, OfflineAuthsResult, MenuColors, MenuPages, Surcharges, Taxes, CheckoutTenderPos, Refund, DeviceRead } from '@open-tender/types';
1
+ import { Arrivals, CheckoutTender, CustomerEndpoints, CustomerIdentifier, CustomerIdentify, Discount, Discounts, ItemTypes, Menu, Order, Orders, OrderCreatePos, OrderTender, OrderUpdate, OrderType, RequestedAt, RevenueCenter, SelectOptions, ServiceType, TicketUpdate, TicketsUpdate, TicketStatusUpdate, EntityType, KioskConfig, Store, Settings, InternalSettings, GiftCardCredit, GiftCardBalance, Employee, Punch, Employees, CashEvent, CashSummary, ErrorAlerts, ErrorAlert, OfflineAuths, OfflineAuthsResult, MenuColors, MenuPages, Surcharges, Taxes, CheckoutTenderPos, Refund, DeviceRead, OrderCreateSendReceipt } from '@open-tender/types';
2
2
  import { OrdersParams } from '../slices';
3
3
  export interface InitAPI {
4
4
  apiUrl: string;
@@ -60,6 +60,7 @@ declare class PosAPI {
60
60
  postChipDNACancel(): Promise<null>;
61
61
  postChipDNATmsUpdate(): Promise<null>;
62
62
  postIdentifyCustomer(data: CustomerIdentifier): Promise<CustomerIdentify>;
63
+ postSendReceipt(orderUuid: string, data: OrderCreateSendReceipt): Promise<void>;
63
64
  getCustomer(customerId: number, endpoints: CustomerEndpoints): Promise<any>;
64
65
  postOrderValidate(order: OrderCreatePos): Promise<Order>;
65
66
  postOrder(order: OrderCreatePos): Promise<Order>;
@@ -286,6 +286,9 @@ var PosAPI = /** @class */ (function () {
286
286
  PosAPI.prototype.postIdentifyCustomer = function (data) {
287
287
  return this.request("/identify-customer", 'POST', data);
288
288
  };
289
+ PosAPI.prototype.postSendReceipt = function (orderUuid, data) {
290
+ return this.request("/orders/".concat(orderUuid, "/send-receipt"), 'POST', data);
291
+ };
289
292
  PosAPI.prototype.getCustomer = function (customerId, endpoints) {
290
293
  var query = "endpoints=".concat(endpoints.join(','));
291
294
  return this.request("/customers/".concat(customerId, "?").concat(query));
@@ -19,6 +19,7 @@ export * from './order';
19
19
  export * from './pos';
20
20
  export * from './punches';
21
21
  export * from './refund';
22
+ export * from './sendReceipt';
22
23
  export * from './settings';
23
24
  export * from './sidebar';
24
25
  export * from './surcharges';
@@ -19,6 +19,7 @@ export * from './order';
19
19
  export * from './pos';
20
20
  export * from './punches';
21
21
  export * from './refund';
22
+ export * from './sendReceipt';
22
23
  export * from './settings';
23
24
  export * from './sidebar';
24
25
  export * from './surcharges';
@@ -62,6 +62,7 @@ export declare const selectKioskTerminal: ((state: {
62
62
  pos: import("./pos").PosState;
63
63
  punches: import("./punches").PunchesState;
64
64
  refund: import("./refund").RefundState;
65
+ sendReceipt: import("./sendReceipt").SendReceiptState;
65
66
  settings: import("./settings").SettingsState;
66
67
  sidebar: import("./sidebar").SidebarState;
67
68
  surcharges: import("./surcharges").SurchargesState;
@@ -118,6 +119,7 @@ export declare const selectKioskShowPrint: ((state: {
118
119
  pos: import("./pos").PosState;
119
120
  punches: import("./punches").PunchesState;
120
121
  refund: import("./refund").RefundState;
122
+ sendReceipt: import("./sendReceipt").SendReceiptState;
121
123
  settings: import("./settings").SettingsState;
122
124
  sidebar: import("./sidebar").SidebarState;
123
125
  surcharges: import("./surcharges").SurchargesState;
@@ -174,6 +176,7 @@ export declare const selectKioskApi: ((state: {
174
176
  pos: import("./pos").PosState;
175
177
  punches: import("./punches").PunchesState;
176
178
  refund: import("./refund").RefundState;
179
+ sendReceipt: import("./sendReceipt").SendReceiptState;
177
180
  settings: import("./settings").SettingsState;
178
181
  sidebar: import("./sidebar").SidebarState;
179
182
  surcharges: import("./surcharges").SurchargesState;
@@ -221,6 +224,7 @@ export declare const selectKioskConfig: ((state: {
221
224
  pos: import("./pos").PosState;
222
225
  punches: import("./punches").PunchesState;
223
226
  refund: import("./refund").RefundState;
227
+ sendReceipt: import("./sendReceipt").SendReceiptState;
224
228
  settings: import("./settings").SettingsState;
225
229
  sidebar: import("./sidebar").SidebarState;
226
230
  surcharges: import("./surcharges").SurchargesState;
@@ -268,6 +272,7 @@ export declare const selectKioskConfigScreen: (screen: string) => ((state: {
268
272
  pos: import("./pos").PosState;
269
273
  punches: import("./punches").PunchesState;
270
274
  refund: import("./refund").RefundState;
275
+ sendReceipt: import("./sendReceipt").SendReceiptState;
271
276
  settings: import("./settings").SettingsState;
272
277
  sidebar: import("./sidebar").SidebarState;
273
278
  surcharges: import("./surcharges").SurchargesState;
@@ -42,6 +42,7 @@ export declare const selectMenuPagesFiltered: ((state: {
42
42
  pos: import("./pos").PosState;
43
43
  punches: import("./punches").PunchesState;
44
44
  refund: import("./refund").RefundState;
45
+ sendReceipt: import("./sendReceipt").SendReceiptState;
45
46
  settings: import("./settings").SettingsState;
46
47
  sidebar: import("./sidebar").SidebarState;
47
48
  surcharges: import("./surcharges").SurchargesState;
@@ -85,6 +85,7 @@ export declare const selectCartIds: ((state: {
85
85
  pos: import("./pos").PosState;
86
86
  punches: import("./punches").PunchesState;
87
87
  refund: import("./refund").RefundState;
88
+ sendReceipt: import("./sendReceipt").SendReceiptState;
88
89
  settings: import("./settings").SettingsState;
89
90
  sidebar: import("./sidebar").SidebarState;
90
91
  surcharges: import("./surcharges").SurchargesState;
@@ -132,6 +133,7 @@ export declare const selectCartQuantity: ((state: {
132
133
  pos: import("./pos").PosState;
133
134
  punches: import("./punches").PunchesState;
134
135
  refund: import("./refund").RefundState;
136
+ sendReceipt: import("./sendReceipt").SendReceiptState;
135
137
  settings: import("./settings").SettingsState;
136
138
  sidebar: import("./sidebar").SidebarState;
137
139
  surcharges: import("./surcharges").SurchargesState;
@@ -179,6 +181,7 @@ export declare const selectCartTotal: ((state: {
179
181
  pos: import("./pos").PosState;
180
182
  punches: import("./punches").PunchesState;
181
183
  refund: import("./refund").RefundState;
184
+ sendReceipt: import("./sendReceipt").SendReceiptState;
182
185
  settings: import("./settings").SettingsState;
183
186
  sidebar: import("./sidebar").SidebarState;
184
187
  surcharges: import("./surcharges").SurchargesState;
@@ -226,6 +229,7 @@ export declare const selectCartTotals: ((state: {
226
229
  pos: import("./pos").PosState;
227
230
  punches: import("./punches").PunchesState;
228
231
  refund: import("./refund").RefundState;
232
+ sendReceipt: import("./sendReceipt").SendReceiptState;
229
233
  settings: import("./settings").SettingsState;
230
234
  sidebar: import("./sidebar").SidebarState;
231
235
  surcharges: import("./surcharges").SurchargesState;
@@ -0,0 +1,25 @@
1
+ import { OrderCreateSendReceipt, RequestError, RequestStatus } from '@open-tender/types';
2
+ import { AppState } from '../app';
3
+ export interface SendReceiptState {
4
+ loading: RequestStatus;
5
+ error: RequestError;
6
+ }
7
+ export declare enum SendReceiptActionType {
8
+ SendReceipt = "SendReceipt/sendReceipt"
9
+ }
10
+ export declare const sendReceipt: import("@reduxjs/toolkit").AsyncThunk<void, {
11
+ orderUuid: string;
12
+ data: OrderCreateSendReceipt;
13
+ }, {
14
+ state: AppState;
15
+ rejectValue: RequestError;
16
+ dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
17
+ extra?: unknown;
18
+ serializedErrorType?: unknown;
19
+ pendingMeta?: unknown;
20
+ fulfilledMeta?: unknown;
21
+ rejectedMeta?: unknown;
22
+ }>;
23
+ export declare const resetSendReceipt: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"sendReceipt/resetSendReceipt">;
24
+ export declare const selectSendReceipt: (state: AppState) => SendReceiptState;
25
+ export declare const sendReceiptReducer: import("redux").Reducer<SendReceiptState>;
@@ -0,0 +1,53 @@
1
+ import { __awaiter, __generator } from "tslib";
2
+ import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
3
+ import { ReducerType } from './types';
4
+ var initialState = {
5
+ loading: 'idle',
6
+ error: null
7
+ };
8
+ export var SendReceiptActionType;
9
+ (function (SendReceiptActionType) {
10
+ SendReceiptActionType["SendReceipt"] = "SendReceipt/sendReceipt";
11
+ })(SendReceiptActionType || (SendReceiptActionType = {}));
12
+ export var sendReceipt = createAsyncThunk(SendReceiptActionType.SendReceipt, function (_a, _b) { return __awaiter(void 0, [_a, _b], void 0, function (_c, _d) {
13
+ var api, err_1;
14
+ var orderUuid = _c.orderUuid, data = _c.data;
15
+ var getState = _d.getState, rejectWithValue = _d.rejectWithValue;
16
+ return __generator(this, function (_e) {
17
+ switch (_e.label) {
18
+ case 0:
19
+ _e.trys.push([0, 2, , 3]);
20
+ api = getState().config.api;
21
+ return [4 /*yield*/, api.postSendReceipt(orderUuid, data)];
22
+ case 1: return [2 /*return*/, _e.sent()];
23
+ case 2:
24
+ err_1 = _e.sent();
25
+ return [2 /*return*/, rejectWithValue(err_1)];
26
+ case 3: return [2 /*return*/];
27
+ }
28
+ });
29
+ }); });
30
+ var sendReceiptSlice = createSlice({
31
+ name: ReducerType.SendReceipt,
32
+ initialState: initialState,
33
+ reducers: {
34
+ resetSendReceipt: function () { return initialState; }
35
+ },
36
+ extraReducers: function (builder) {
37
+ builder
38
+ .addCase(sendReceipt.fulfilled, function (state) {
39
+ state.loading = 'idle';
40
+ state.error = null;
41
+ })
42
+ .addCase(sendReceipt.pending, function (state) {
43
+ state.loading = 'pending';
44
+ })
45
+ .addCase(sendReceipt.rejected, function (state, action) {
46
+ state.error = action.payload;
47
+ state.loading = 'idle';
48
+ });
49
+ }
50
+ });
51
+ export var resetSendReceipt = sendReceiptSlice.actions.resetSendReceipt;
52
+ export var selectSendReceipt = function (state) { return state.sendReceipt; };
53
+ export var sendReceiptReducer = sendReceiptSlice.reducer;
@@ -22,6 +22,7 @@ export declare enum ReducerType {
22
22
  Pos = "pos",
23
23
  Punches = "punches",
24
24
  Refund = "refund",
25
+ SendReceipt = "sendReceipt",
25
26
  Settings = "settings",
26
27
  Sidebar = "sidebar",
27
28
  Surcharges = "surcharges",
@@ -23,6 +23,7 @@ export var ReducerType;
23
23
  ReducerType["Pos"] = "pos";
24
24
  ReducerType["Punches"] = "punches";
25
25
  ReducerType["Refund"] = "refund";
26
+ ReducerType["SendReceipt"] = "sendReceipt";
26
27
  ReducerType["Settings"] = "settings";
27
28
  ReducerType["Sidebar"] = "sidebar";
28
29
  ReducerType["Surcharges"] = "surcharges";
package/package.json CHANGED
@@ -1,75 +1,78 @@
1
- {
2
- "name": "@open-tender/store",
3
- "version": "1.1.48",
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
- "main": "./dist/cjs/index.js",
6
- "module": "./dist/esm/index.js",
7
- "types": "./dist/esm/index.d.ts",
8
- "files": [
9
- "dist"
10
- ],
11
- "scripts": {
12
- "build": "rm -rf ./dist/ && yarn build:esm && yarn build:cjs",
13
- "build:esm": "tsc",
14
- "build:cjs": "tsc --module commonjs --outDir dist/cjs",
15
- "lint": "eslint \"{**/*,*}.{js,ts,jsx,tsx}\"",
16
- "lint:fix": "eslint . --fix",
17
- "prettier": "prettier --write \"{src,tests,example/src}/**/*.{js,ts,jsx,tsx}\""
18
- },
19
- "homepage": "https://github.com/open-tender/open-tender-store",
20
- "bugs": "https://github.com/open-tender/open-tender-store/issues",
21
- "repository": {
22
- "url": "https://github.com/open-tender/open-tender-store",
23
- "type": "git"
24
- },
25
- "author": "JC Harrington <jc@opentender.io> (https://www.opentender.io)",
26
- "keywords": [
27
- "open-tender",
28
- "react",
29
- "redux",
30
- "ecommerce",
31
- "restaurants"
32
- ],
33
- "license": "MIT",
34
- "private": false,
35
- "devDependencies": {
36
- "@babel/core": "^7.23.6",
37
- "@emotion/react": "^11.11.1",
38
- "@reduxjs/toolkit": "^2.0.1",
39
- "@types/react": "^18.2.45",
40
- "@types/react-dom": "^18.2.18",
41
- "@types/uuid": "^9.0.7",
42
- "@typescript-eslint/eslint-plugin": "^6.14.0",
43
- "@typescript-eslint/parser": "^6.14.0",
44
- "date-fns": "2.30.0",
45
- "date-fns-tz": "^2.0.0",
46
- "eslint": "^8.56.0",
47
- "eslint-config-prettier": "^9.1.0",
48
- "eslint-plugin-import": "^2.29.1",
49
- "eslint-plugin-prettier": "^5.1.3",
50
- "eslint-plugin-react": "^7.33.2",
51
- "eslint-plugin-react-hooks": "^4.6.0",
52
- "prettier": "^3.1.1",
53
- "react": "^18.2.0",
54
- "react-device-detect": "^2.2.3",
55
- "react-dom": "^18.2.0",
56
- "react-fast-compare": "^3.2.2",
57
- "react-redux": "^9.0.4",
58
- "tslib": "^2.6.2",
59
- "typescript": "^5.3.3",
60
- "uuid": "^9.0.1"
61
- },
62
- "peerDependencies": {
63
- "@emotion/react": "^11.11.1",
64
- "@open-tender/types": "^0.4.57",
65
- "@open-tender/ui": "^0.3.48",
66
- "@open-tender/utils": "^0.4.31",
67
- "@reduxjs/toolkit": "^2.0.1",
68
- "date-fns": "2.30.0",
69
- "date-fns-tz": "^2.0.0",
70
- "react": "^18.2.0",
71
- "react-device-detect": "^2.2.3",
72
- "react-dom": "^18.2.0",
73
- "uuid": "^9.0.1"
74
- }
75
- }
1
+ {
2
+ "name": "@open-tender/store",
3
+ "version": "1.1.50",
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
+ "main": "./dist/cjs/index.js",
6
+ "module": "./dist/esm/index.js",
7
+ "types": "./dist/esm/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "scripts": {
12
+ "build": "rm -rf ./dist/ && yarn build:esm && yarn build:cjs",
13
+ "build:esm": "tsc",
14
+ "build:cjs": "tsc --module commonjs --outDir dist/cjs",
15
+ "lint": "eslint \"{**/*,*}.{js,ts,jsx,tsx}\"",
16
+ "lint:fix": "eslint . --fix",
17
+ "prettier": "prettier --write \"{src,tests,example/src}/**/*.{js,ts,jsx,tsx}\""
18
+ },
19
+ "homepage": "https://github.com/open-tender/open-tender-store",
20
+ "bugs": "https://github.com/open-tender/open-tender-store/issues",
21
+ "repository": {
22
+ "url": "https://github.com/open-tender/open-tender-store",
23
+ "type": "git"
24
+ },
25
+ "author": "JC Harrington <jc@opentender.io> (https://www.opentender.io)",
26
+ "keywords": [
27
+ "open-tender",
28
+ "react",
29
+ "redux",
30
+ "ecommerce",
31
+ "restaurants"
32
+ ],
33
+ "license": "MIT",
34
+ "private": false,
35
+ "devDependencies": {
36
+ "@babel/core": "^7.23.6",
37
+ "@emotion/react": "^11.11.1",
38
+ "@open-tender/types": "^0.4.58",
39
+ "@open-tender/ui": "^0.3.49",
40
+ "@open-tender/utils": "^0.4.31",
41
+ "@reduxjs/toolkit": "^2.0.1",
42
+ "@types/react": "^18.2.45",
43
+ "@types/react-dom": "^18.2.18",
44
+ "@types/uuid": "^9.0.7",
45
+ "@typescript-eslint/eslint-plugin": "^6.14.0",
46
+ "@typescript-eslint/parser": "^6.14.0",
47
+ "date-fns": "2.30.0",
48
+ "date-fns-tz": "^2.0.0",
49
+ "eslint": "^8.56.0",
50
+ "eslint-config-prettier": "^9.1.0",
51
+ "eslint-plugin-import": "^2.29.1",
52
+ "eslint-plugin-prettier": "^5.1.3",
53
+ "eslint-plugin-react": "^7.33.2",
54
+ "eslint-plugin-react-hooks": "^4.6.0",
55
+ "prettier": "^3.1.1",
56
+ "react": "^18.2.0",
57
+ "react-device-detect": "^2.2.3",
58
+ "react-dom": "^18.2.0",
59
+ "react-fast-compare": "^3.2.2",
60
+ "react-redux": "^9.0.4",
61
+ "tslib": "^2.6.2",
62
+ "typescript": "^5.3.3",
63
+ "uuid": "^9.0.1"
64
+ },
65
+ "peerDependencies": {
66
+ "@emotion/react": "^11.11.1",
67
+ "@open-tender/types": "^0.4.58",
68
+ "@open-tender/ui": "^0.3.49",
69
+ "@open-tender/utils": "^0.4.31",
70
+ "@reduxjs/toolkit": "^2.0.1",
71
+ "date-fns": "2.30.0",
72
+ "date-fns-tz": "^2.0.0",
73
+ "react": "^18.2.0",
74
+ "react-device-detect": "^2.2.3",
75
+ "react-dom": "^18.2.0",
76
+ "uuid": "^9.0.1"
77
+ }
78
+ }