@open-tender/store 0.4.0 → 0.5.0
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/app/hooks.d.ts +1 -0
- package/dist/cjs/app/store.d.ts +3 -0
- package/dist/cjs/app/store.js +1 -0
- package/dist/cjs/hooks/index.d.ts +8 -1
- package/dist/cjs/hooks/index.js +15 -1
- package/dist/cjs/hooks/useBarcode.d.ts +7 -0
- package/dist/cjs/hooks/useBarcode.js +62 -0
- package/dist/cjs/hooks/useCardSwipe.d.ts +7 -0
- package/dist/cjs/hooks/useCardSwipe.js +78 -0
- package/dist/cjs/hooks/useEmployee.d.ts +8 -0
- package/dist/cjs/hooks/useEmployee.js +60 -0
- package/dist/cjs/hooks/useGiftCardBalance.d.ts +9 -0
- package/dist/cjs/hooks/useGiftCardBalance.js +52 -0
- package/dist/cjs/hooks/usePrevious.d.ts +2 -0
- package/dist/cjs/hooks/usePrevious.js +11 -0
- package/dist/cjs/hooks/usePunch.d.ts +12 -0
- package/dist/cjs/hooks/usePunch.js +123 -0
- package/dist/cjs/hooks/useRefund.d.ts +17 -0
- package/dist/cjs/hooks/useRefund.js +90 -0
- package/dist/cjs/services/api.d.ts +2 -1
- package/dist/cjs/services/api.js +3 -0
- package/dist/cjs/slices/index.d.ts +1 -0
- package/dist/cjs/slices/index.js +1 -0
- package/dist/cjs/slices/kiosk.d.ts +32 -0
- package/dist/cjs/slices/kiosk.js +116 -0
- package/dist/cjs/slices/types.d.ts +1 -0
- package/dist/cjs/slices/types.js +1 -0
- package/dist/cjs/types/api/index.d.ts +1 -0
- package/dist/cjs/types/api/index.js +1 -0
- package/dist/cjs/types/api/kiosk.d.ts +8 -0
- package/dist/cjs/types/api/kiosk.js +2 -0
- package/dist/esm/app/hooks.d.ts +1 -0
- package/dist/esm/app/store.d.ts +3 -0
- package/dist/esm/app/store.js +2 -1
- package/dist/esm/hooks/index.d.ts +8 -1
- package/dist/esm/hooks/index.js +8 -1
- package/dist/esm/hooks/useBarcode.d.ts +7 -0
- package/dist/esm/hooks/useBarcode.js +60 -0
- package/dist/esm/hooks/useCardSwipe.d.ts +7 -0
- package/dist/esm/hooks/useCardSwipe.js +76 -0
- package/dist/esm/hooks/useEmployee.d.ts +8 -0
- package/dist/esm/hooks/useEmployee.js +58 -0
- package/dist/esm/hooks/useGiftCardBalance.d.ts +9 -0
- package/dist/esm/hooks/useGiftCardBalance.js +50 -0
- package/dist/esm/hooks/usePrevious.d.ts +2 -0
- package/dist/esm/hooks/usePrevious.js +9 -0
- package/dist/esm/hooks/usePunch.d.ts +12 -0
- package/dist/esm/hooks/usePunch.js +121 -0
- package/dist/esm/hooks/useRefund.d.ts +17 -0
- package/dist/esm/hooks/useRefund.js +88 -0
- package/dist/esm/services/api.d.ts +2 -1
- package/dist/esm/services/api.js +3 -0
- package/dist/esm/slices/index.d.ts +1 -0
- package/dist/esm/slices/index.js +1 -0
- package/dist/esm/slices/kiosk.d.ts +32 -0
- package/dist/esm/slices/kiosk.js +110 -0
- package/dist/esm/slices/types.d.ts +1 -0
- package/dist/esm/slices/types.js +1 -0
- package/dist/esm/types/api/index.d.ts +1 -0
- package/dist/esm/types/api/index.js +1 -0
- package/dist/esm/types/api/kiosk.d.ts +8 -0
- package/dist/esm/types/api/kiosk.js +1 -0
- package/package.json +1 -1
package/dist/cjs/app/hooks.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export declare const useAppDispatch: () => import("redux-thunk").ThunkDispatch<i
|
|
|
9
9
|
discounts: import("..").DiscountsState;
|
|
10
10
|
errorAlerts: import("..").ErrorAlertsState;
|
|
11
11
|
kds: import("..").KdsState;
|
|
12
|
+
kiosk: import("..").KioskState;
|
|
12
13
|
menu: import("..").MenuState;
|
|
13
14
|
menuPages: import("..").MenuPagesState;
|
|
14
15
|
modal: import("..").ModalState;
|
package/dist/cjs/app/store.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare const appReducer: import("redux").Reducer<import("redux").Combine
|
|
|
8
8
|
discounts: import("../slices").DiscountsState;
|
|
9
9
|
errorAlerts: import("../slices").ErrorAlertsState;
|
|
10
10
|
kds: import("../slices").KdsState;
|
|
11
|
+
kiosk: import("../slices").KioskState;
|
|
11
12
|
menu: import("../slices").MenuState;
|
|
12
13
|
menuPages: import("../slices").MenuPagesState;
|
|
13
14
|
modal: import("../slices").ModalState;
|
|
@@ -32,6 +33,7 @@ declare const store: import("@reduxjs/toolkit").EnhancedStore<import("redux").Co
|
|
|
32
33
|
discounts: import("../slices").DiscountsState;
|
|
33
34
|
errorAlerts: import("../slices").ErrorAlertsState;
|
|
34
35
|
kds: import("../slices").KdsState;
|
|
36
|
+
kiosk: import("../slices").KioskState;
|
|
35
37
|
menu: import("../slices").MenuState;
|
|
36
38
|
menuPages: import("../slices").MenuPagesState;
|
|
37
39
|
modal: import("../slices").ModalState;
|
|
@@ -54,6 +56,7 @@ declare const store: import("@reduxjs/toolkit").EnhancedStore<import("redux").Co
|
|
|
54
56
|
discounts: import("../slices").DiscountsState;
|
|
55
57
|
errorAlerts: import("../slices").ErrorAlertsState;
|
|
56
58
|
kds: import("../slices").KdsState;
|
|
59
|
+
kiosk: import("../slices").KioskState;
|
|
57
60
|
menu: import("../slices").MenuState;
|
|
58
61
|
menuPages: import("../slices").MenuPagesState;
|
|
59
62
|
modal: import("../slices").ModalState;
|
package/dist/cjs/app/store.js
CHANGED
|
@@ -12,6 +12,7 @@ exports.appReducer = (0, toolkit_1.combineReducers)({
|
|
|
12
12
|
discounts: slices_1.discountsReducer,
|
|
13
13
|
errorAlerts: slices_1.errorAlertsReducer,
|
|
14
14
|
kds: slices_1.kdsReducer,
|
|
15
|
+
kiosk: slices_1.kioskReducer,
|
|
15
16
|
menu: slices_1.menuReducer,
|
|
16
17
|
menuPages: slices_1.menuPagesReducer,
|
|
17
18
|
modal: slices_1.modalReducer,
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
+
import useBarcode from './useBarcode';
|
|
1
2
|
import useBuilder from './useBuilder';
|
|
2
|
-
|
|
3
|
+
import useCardSwipe from './useCardSwipe';
|
|
4
|
+
import useEmployee from './useEmployee';
|
|
5
|
+
import useGiftCardBalance from './useGiftCardBalance';
|
|
6
|
+
import usePrevious from './usePrevious';
|
|
7
|
+
import usePunch from './usePunch';
|
|
8
|
+
import useRefund from './useRefund';
|
|
9
|
+
export { useBarcode, useBuilder, useCardSwipe, useEmployee, useGiftCardBalance, usePrevious, usePunch, useRefund };
|
package/dist/cjs/hooks/index.js
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useBuilder = void 0;
|
|
3
|
+
exports.useRefund = exports.usePunch = exports.usePrevious = exports.useGiftCardBalance = exports.useEmployee = exports.useCardSwipe = exports.useBuilder = exports.useBarcode = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
+
var useBarcode_1 = tslib_1.__importDefault(require("./useBarcode"));
|
|
6
|
+
exports.useBarcode = useBarcode_1.default;
|
|
5
7
|
var useBuilder_1 = tslib_1.__importDefault(require("./useBuilder"));
|
|
6
8
|
exports.useBuilder = useBuilder_1.default;
|
|
9
|
+
var useCardSwipe_1 = tslib_1.__importDefault(require("./useCardSwipe"));
|
|
10
|
+
exports.useCardSwipe = useCardSwipe_1.default;
|
|
11
|
+
var useEmployee_1 = tslib_1.__importDefault(require("./useEmployee"));
|
|
12
|
+
exports.useEmployee = useEmployee_1.default;
|
|
13
|
+
var useGiftCardBalance_1 = tslib_1.__importDefault(require("./useGiftCardBalance"));
|
|
14
|
+
exports.useGiftCardBalance = useGiftCardBalance_1.default;
|
|
15
|
+
var usePrevious_1 = tslib_1.__importDefault(require("./usePrevious"));
|
|
16
|
+
exports.usePrevious = usePrevious_1.default;
|
|
17
|
+
var usePunch_1 = tslib_1.__importDefault(require("./usePunch"));
|
|
18
|
+
exports.usePunch = usePunch_1.default;
|
|
19
|
+
var useRefund_1 = tslib_1.__importDefault(require("./useRefund"));
|
|
20
|
+
exports.useRefund = useRefund_1.default;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var utils_1 = require("../utils");
|
|
6
|
+
var useBarcode = function (api) {
|
|
7
|
+
var isAborted = (0, react_1.useRef)(false);
|
|
8
|
+
var _a = (0, react_1.useState)(null), code = _a[0], setCode = _a[1];
|
|
9
|
+
var _b = (0, react_1.useState)(null), error = _b[0], setError = _b[1];
|
|
10
|
+
(0, react_1.useEffect)(function () {
|
|
11
|
+
return function () {
|
|
12
|
+
isAborted.current = true;
|
|
13
|
+
};
|
|
14
|
+
}, []);
|
|
15
|
+
var read = (0, react_1.useCallback)(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
16
|
+
var data, err_1, detail;
|
|
17
|
+
return tslib_1.__generator(this, function (_a) {
|
|
18
|
+
switch (_a.label) {
|
|
19
|
+
case 0:
|
|
20
|
+
_a.trys.push([0, 2, , 3]);
|
|
21
|
+
return [4 /*yield*/, api.getBarcodeRead()];
|
|
22
|
+
case 1:
|
|
23
|
+
data = (_a.sent()).data;
|
|
24
|
+
if (!isAborted.current) {
|
|
25
|
+
setCode(data);
|
|
26
|
+
}
|
|
27
|
+
return [3 /*break*/, 3];
|
|
28
|
+
case 2:
|
|
29
|
+
err_1 = _a.sent();
|
|
30
|
+
if (!isAborted.current) {
|
|
31
|
+
detail = (0, utils_1.handleRespError)(err_1).detail;
|
|
32
|
+
setError(detail);
|
|
33
|
+
}
|
|
34
|
+
return [3 /*break*/, 3];
|
|
35
|
+
case 3: return [2 /*return*/];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}); }, [api]);
|
|
39
|
+
var cancel = (0, react_1.useCallback)(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
40
|
+
var err_2, detail;
|
|
41
|
+
return tslib_1.__generator(this, function (_a) {
|
|
42
|
+
switch (_a.label) {
|
|
43
|
+
case 0:
|
|
44
|
+
_a.trys.push([0, 2, , 3]);
|
|
45
|
+
return [4 /*yield*/, api.postBarcodeCancel()];
|
|
46
|
+
case 1:
|
|
47
|
+
_a.sent();
|
|
48
|
+
return [3 /*break*/, 3];
|
|
49
|
+
case 2:
|
|
50
|
+
err_2 = _a.sent();
|
|
51
|
+
if (!isAborted.current) {
|
|
52
|
+
detail = (0, utils_1.handleRespError)(err_2).detail;
|
|
53
|
+
setError(detail);
|
|
54
|
+
}
|
|
55
|
+
return [3 /*break*/, 3];
|
|
56
|
+
case 3: return [2 /*return*/];
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}); }, [api]);
|
|
60
|
+
return (0, react_1.useMemo)(function () { return ({ code: code, error: error, read: read, cancel: cancel }); }, [code, error, read, cancel]);
|
|
61
|
+
};
|
|
62
|
+
exports.default = useBarcode;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var utils_1 = require("../utils");
|
|
6
|
+
var parseSwipeCard = function (data) {
|
|
7
|
+
try {
|
|
8
|
+
var parts = data.split('?');
|
|
9
|
+
var code = parts[0].slice(1);
|
|
10
|
+
return code.length > 36 ? null : code;
|
|
11
|
+
}
|
|
12
|
+
catch (err) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
var useCardSwipe = function (api, parse) {
|
|
17
|
+
if (parse === void 0) { parse = true; }
|
|
18
|
+
var isAborted = (0, react_1.useRef)(false);
|
|
19
|
+
var _a = (0, react_1.useState)(null), code = _a[0], setCode = _a[1];
|
|
20
|
+
var _b = (0, react_1.useState)(null), error = _b[0], setError = _b[1];
|
|
21
|
+
(0, react_1.useEffect)(function () {
|
|
22
|
+
return function () {
|
|
23
|
+
isAborted.current = true;
|
|
24
|
+
};
|
|
25
|
+
}, []);
|
|
26
|
+
var read = (0, react_1.useCallback)(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
27
|
+
var data, err_1, detail;
|
|
28
|
+
return tslib_1.__generator(this, function (_a) {
|
|
29
|
+
switch (_a.label) {
|
|
30
|
+
case 0:
|
|
31
|
+
_a.trys.push([0, 2, , 3]);
|
|
32
|
+
return [4 /*yield*/, api.getCardRead()];
|
|
33
|
+
case 1:
|
|
34
|
+
data = (_a.sent()).data;
|
|
35
|
+
if (parse)
|
|
36
|
+
data = parseSwipeCard(data);
|
|
37
|
+
data ? setCode(data) : setError('Could not read card. Please try again.');
|
|
38
|
+
if (!isAborted.current) {
|
|
39
|
+
data
|
|
40
|
+
? setCode(data)
|
|
41
|
+
: setError('Could not read card. Please try again.');
|
|
42
|
+
}
|
|
43
|
+
return [3 /*break*/, 3];
|
|
44
|
+
case 2:
|
|
45
|
+
err_1 = _a.sent();
|
|
46
|
+
if (!isAborted.current) {
|
|
47
|
+
detail = (0, utils_1.handleRespError)(err_1).detail;
|
|
48
|
+
setError(detail);
|
|
49
|
+
}
|
|
50
|
+
return [3 /*break*/, 3];
|
|
51
|
+
case 3: return [2 /*return*/];
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}); }, [api, parse]);
|
|
55
|
+
var cancel = (0, react_1.useCallback)(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
56
|
+
var err_2, detail;
|
|
57
|
+
return tslib_1.__generator(this, function (_a) {
|
|
58
|
+
switch (_a.label) {
|
|
59
|
+
case 0:
|
|
60
|
+
_a.trys.push([0, 2, , 3]);
|
|
61
|
+
return [4 /*yield*/, api.postCardCancel()];
|
|
62
|
+
case 1:
|
|
63
|
+
_a.sent();
|
|
64
|
+
return [3 /*break*/, 3];
|
|
65
|
+
case 2:
|
|
66
|
+
err_2 = _a.sent();
|
|
67
|
+
if (!isAborted.current) {
|
|
68
|
+
detail = (0, utils_1.handleRespError)(err_2).detail;
|
|
69
|
+
setError(detail);
|
|
70
|
+
}
|
|
71
|
+
return [3 /*break*/, 3];
|
|
72
|
+
case 3: return [2 /*return*/];
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}); }, [api]);
|
|
76
|
+
return (0, react_1.useMemo)(function () { return ({ code: code, error: error, read: read, cancel: cancel }); }, [code, error, read, cancel]);
|
|
77
|
+
};
|
|
78
|
+
exports.default = useCardSwipe;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Employee } from '../types';
|
|
2
|
+
declare const useEmployee: (api: any) => {
|
|
3
|
+
employee: Employee | null;
|
|
4
|
+
error: string | null;
|
|
5
|
+
fetch: (identifier: string | number, withPunches?: boolean) => Promise<void>;
|
|
6
|
+
reset: () => void;
|
|
7
|
+
};
|
|
8
|
+
export default useEmployee;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var utils_1 = require("../utils");
|
|
6
|
+
var useEmployee = function (api) {
|
|
7
|
+
var isAborted = (0, react_1.useRef)(false);
|
|
8
|
+
var _a = (0, react_1.useState)(null), employee = _a[0], setEmployee = _a[1];
|
|
9
|
+
var _b = (0, react_1.useState)(null), error = _b[0], setError = _b[1];
|
|
10
|
+
(0, react_1.useEffect)(function () {
|
|
11
|
+
return function () {
|
|
12
|
+
isAborted.current = true;
|
|
13
|
+
};
|
|
14
|
+
}, []);
|
|
15
|
+
var fetch = (0, react_1.useCallback)(function (identifier, withPunches) {
|
|
16
|
+
if (withPunches === void 0) { withPunches = false; }
|
|
17
|
+
return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
18
|
+
var employee_1, employee_id, response, err_1, detail;
|
|
19
|
+
return tslib_1.__generator(this, function (_a) {
|
|
20
|
+
switch (_a.label) {
|
|
21
|
+
case 0:
|
|
22
|
+
_a.trys.push([0, 4, , 5]);
|
|
23
|
+
return [4 /*yield*/, api.getEmployee(identifier)];
|
|
24
|
+
case 1:
|
|
25
|
+
employee_1 = _a.sent();
|
|
26
|
+
if (!withPunches) return [3 /*break*/, 3];
|
|
27
|
+
employee_id = employee_1.employee_id;
|
|
28
|
+
return [4 /*yield*/, api.getTimePunchesReport(null, employee_id)];
|
|
29
|
+
case 2:
|
|
30
|
+
response = _a.sent();
|
|
31
|
+
if (response.length)
|
|
32
|
+
employee_1 = response[0];
|
|
33
|
+
_a.label = 3;
|
|
34
|
+
case 3:
|
|
35
|
+
if (!isAborted.current) {
|
|
36
|
+
setEmployee(employee_1);
|
|
37
|
+
}
|
|
38
|
+
return [3 /*break*/, 5];
|
|
39
|
+
case 4:
|
|
40
|
+
err_1 = _a.sent();
|
|
41
|
+
if (!isAborted.current) {
|
|
42
|
+
detail = (0, utils_1.handleRespError)(err_1).detail;
|
|
43
|
+
if (detail.includes('does not exist')) {
|
|
44
|
+
detail = 'Employee not found. Please try again.';
|
|
45
|
+
}
|
|
46
|
+
setError(detail);
|
|
47
|
+
}
|
|
48
|
+
return [3 /*break*/, 5];
|
|
49
|
+
case 5: return [2 /*return*/];
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
}, [api]);
|
|
54
|
+
var reset = (0, react_1.useCallback)(function () {
|
|
55
|
+
setEmployee(null);
|
|
56
|
+
setError(null);
|
|
57
|
+
}, []);
|
|
58
|
+
return (0, react_1.useMemo)(function () { return ({ employee: employee, error: error, fetch: fetch, reset: reset }); }, [employee, error, fetch, reset]);
|
|
59
|
+
};
|
|
60
|
+
exports.default = useEmployee;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { GiftCardBalance } from '../types';
|
|
2
|
+
declare const useGiftCardBalance: (api: any) => {
|
|
3
|
+
giftCard: GiftCardBalance | null;
|
|
4
|
+
loading: string;
|
|
5
|
+
error: string | null;
|
|
6
|
+
fetch: (code: string) => Promise<void>;
|
|
7
|
+
reset: () => void;
|
|
8
|
+
};
|
|
9
|
+
export default useGiftCardBalance;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var utils_1 = require("../utils");
|
|
6
|
+
var useGiftCardBalance = function (api) {
|
|
7
|
+
var isAborted = (0, react_1.useRef)(false);
|
|
8
|
+
var _a = (0, react_1.useState)(null), giftCard = _a[0], setGiftCard = _a[1];
|
|
9
|
+
var _b = (0, react_1.useState)('idle'), loading = _b[0], setLoading = _b[1];
|
|
10
|
+
var _c = (0, react_1.useState)(null), error = _c[0], setError = _c[1];
|
|
11
|
+
(0, react_1.useEffect)(function () {
|
|
12
|
+
return function () {
|
|
13
|
+
isAborted.current = true;
|
|
14
|
+
};
|
|
15
|
+
}, []);
|
|
16
|
+
var fetch = (0, react_1.useCallback)(function (code) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
17
|
+
var giftCard_1, err_1, detail;
|
|
18
|
+
return tslib_1.__generator(this, function (_a) {
|
|
19
|
+
switch (_a.label) {
|
|
20
|
+
case 0:
|
|
21
|
+
setLoading('pending');
|
|
22
|
+
_a.label = 1;
|
|
23
|
+
case 1:
|
|
24
|
+
_a.trys.push([1, 3, , 4]);
|
|
25
|
+
return [4 /*yield*/, api.getGiftCardBalance(code)];
|
|
26
|
+
case 2:
|
|
27
|
+
giftCard_1 = _a.sent();
|
|
28
|
+
if (!isAborted.current) {
|
|
29
|
+
setGiftCard(giftCard_1);
|
|
30
|
+
}
|
|
31
|
+
return [3 /*break*/, 4];
|
|
32
|
+
case 3:
|
|
33
|
+
err_1 = _a.sent();
|
|
34
|
+
if (!isAborted.current) {
|
|
35
|
+
detail = (0, utils_1.handleRespError)(err_1).detail;
|
|
36
|
+
setError(detail);
|
|
37
|
+
}
|
|
38
|
+
return [3 /*break*/, 4];
|
|
39
|
+
case 4:
|
|
40
|
+
setLoading('idle');
|
|
41
|
+
return [2 /*return*/];
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}); }, [api]);
|
|
45
|
+
var reset = (0, react_1.useCallback)(function () {
|
|
46
|
+
setGiftCard(null);
|
|
47
|
+
setLoading('idle');
|
|
48
|
+
setError(null);
|
|
49
|
+
}, []);
|
|
50
|
+
return (0, react_1.useMemo)(function () { return ({ giftCard: giftCard, loading: loading, error: error, fetch: fetch, reset: reset }); }, [giftCard, loading, error, fetch, reset]);
|
|
51
|
+
};
|
|
52
|
+
exports.default = useGiftCardBalance;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var react_1 = require("react");
|
|
4
|
+
var usePrevious = function (value) {
|
|
5
|
+
var ref = (0, react_1.useRef)();
|
|
6
|
+
(0, react_1.useEffect)(function () {
|
|
7
|
+
ref.current = value;
|
|
8
|
+
});
|
|
9
|
+
return ref.current;
|
|
10
|
+
};
|
|
11
|
+
exports.default = usePrevious;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ModalState } from '../slices';
|
|
2
|
+
import { Employee, Punch } from '../types';
|
|
3
|
+
declare const usePunch: (api: any) => {
|
|
4
|
+
submit: (employee: Employee, blockPin: boolean) => void;
|
|
5
|
+
send: (data: Punch, employee: Employee) => Promise<void>;
|
|
6
|
+
print: (employeeId: number) => Promise<void>;
|
|
7
|
+
error: string | null;
|
|
8
|
+
msg: string | null;
|
|
9
|
+
modal: ModalState | null;
|
|
10
|
+
reset: () => void;
|
|
11
|
+
};
|
|
12
|
+
export default usePunch;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var utils_1 = require("../utils");
|
|
6
|
+
var codeErrMsg = 'Employee has been assigned a swipe card. Please use card to punch in / out.';
|
|
7
|
+
var deptErrMsg = "This employee doesn't have any departments. Please contact HR.";
|
|
8
|
+
var usePunch = function (api) {
|
|
9
|
+
var isAborted = (0, react_1.useRef)(false);
|
|
10
|
+
var _a = (0, react_1.useState)(null), error = _a[0], setError = _a[1];
|
|
11
|
+
var _b = (0, react_1.useState)(null), msg = _b[0], setMsg = _b[1];
|
|
12
|
+
var _c = (0, react_1.useState)(null), modal = _c[0], setModal = _c[1];
|
|
13
|
+
(0, react_1.useEffect)(function () {
|
|
14
|
+
return function () {
|
|
15
|
+
isAborted.current = true;
|
|
16
|
+
};
|
|
17
|
+
}, []);
|
|
18
|
+
var reset = (0, react_1.useCallback)(function () {
|
|
19
|
+
setError(null);
|
|
20
|
+
setModal(null);
|
|
21
|
+
setMsg(null);
|
|
22
|
+
}, []);
|
|
23
|
+
var print = (0, react_1.useCallback)(function (employeeId) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
24
|
+
var err_1, detail;
|
|
25
|
+
return tslib_1.__generator(this, function (_a) {
|
|
26
|
+
switch (_a.label) {
|
|
27
|
+
case 0:
|
|
28
|
+
_a.trys.push([0, 2, , 3]);
|
|
29
|
+
return [4 /*yield*/, api.postPrintShiftSummary(employeeId)];
|
|
30
|
+
case 1:
|
|
31
|
+
_a.sent();
|
|
32
|
+
return [3 /*break*/, 3];
|
|
33
|
+
case 2:
|
|
34
|
+
err_1 = _a.sent();
|
|
35
|
+
if (!isAborted.current) {
|
|
36
|
+
detail = (0, utils_1.handleRespError)(err_1).detail;
|
|
37
|
+
setError(detail);
|
|
38
|
+
}
|
|
39
|
+
return [3 /*break*/, 3];
|
|
40
|
+
case 3: return [2 /*return*/];
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}); }, [api]);
|
|
44
|
+
var send = (0, react_1.useCallback)(function (data, employee) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
45
|
+
var err_2, detail;
|
|
46
|
+
return tslib_1.__generator(this, function (_a) {
|
|
47
|
+
switch (_a.label) {
|
|
48
|
+
case 0:
|
|
49
|
+
_a.trys.push([0, 2, , 3]);
|
|
50
|
+
return [4 /*yield*/, api.postTimePunch(data)];
|
|
51
|
+
case 1:
|
|
52
|
+
_a.sent();
|
|
53
|
+
if (!isAborted.current) {
|
|
54
|
+
setMsg((0, utils_1.makePunchMessage)(employee, data.punch_type));
|
|
55
|
+
}
|
|
56
|
+
return [3 /*break*/, 3];
|
|
57
|
+
case 2:
|
|
58
|
+
err_2 = _a.sent();
|
|
59
|
+
if (!isAborted.current) {
|
|
60
|
+
detail = (0, utils_1.handleRespError)(err_2).detail;
|
|
61
|
+
setError(detail);
|
|
62
|
+
}
|
|
63
|
+
return [3 /*break*/, 3];
|
|
64
|
+
case 3: return [2 /*return*/];
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}); }, [api]);
|
|
68
|
+
var submit = (0, react_1.useCallback)(function (employee, blockPin) {
|
|
69
|
+
if (employee && employee.code && blockPin) {
|
|
70
|
+
setError(codeErrMsg);
|
|
71
|
+
}
|
|
72
|
+
else if (!employee.punches) {
|
|
73
|
+
if (!employee.departments.length) {
|
|
74
|
+
setError(deptErrMsg);
|
|
75
|
+
}
|
|
76
|
+
else if (employee.departments.length > 1) {
|
|
77
|
+
setModal({ type: 'punchDept', args: { employee: employee } });
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
var employee_id = employee.employee_id, departments = employee.departments;
|
|
81
|
+
var data = {
|
|
82
|
+
employee_id: employee_id,
|
|
83
|
+
department_id: departments[0].id,
|
|
84
|
+
punch_type: 'PUNCH_IN',
|
|
85
|
+
tips: '0.00'
|
|
86
|
+
};
|
|
87
|
+
send(data, employee);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
var lastPunch = employee.punches[employee.punches.length - 1];
|
|
92
|
+
var employee_id = lastPunch.employee_id, department_id = lastPunch.department_id, punch_type = lastPunch.punch_type;
|
|
93
|
+
if (punch_type === 'BREAK_OUT') {
|
|
94
|
+
var data = {
|
|
95
|
+
employee_id: employee_id,
|
|
96
|
+
department_id: department_id,
|
|
97
|
+
punch_type: 'BREAK_IN',
|
|
98
|
+
tips: '0.00'
|
|
99
|
+
};
|
|
100
|
+
send(data, employee);
|
|
101
|
+
}
|
|
102
|
+
else if (punch_type === 'PUNCH_OUT') {
|
|
103
|
+
if (employee.departments.length > 1) {
|
|
104
|
+
setModal({ type: 'punchDept', args: { employee: employee } });
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
var data = {
|
|
108
|
+
employee_id: employee_id,
|
|
109
|
+
department_id: employee.departments[0].id,
|
|
110
|
+
punch_type: 'PUNCH_IN',
|
|
111
|
+
tips: '0.00'
|
|
112
|
+
};
|
|
113
|
+
send(data, employee);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
setModal({ type: 'punchType', args: { employee: employee } });
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}, [send]);
|
|
121
|
+
return (0, react_1.useMemo)(function () { return ({ submit: submit, send: send, print: print, error: error, msg: msg, modal: modal, reset: reset }); }, [submit, send, print, error, msg, modal, reset]);
|
|
122
|
+
};
|
|
123
|
+
exports.default = usePunch;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Money, OrderSurcharge, Refund, RefundItem } from '../types';
|
|
2
|
+
declare const useRefund: (initialState?: {}) => {
|
|
3
|
+
refund: Refund;
|
|
4
|
+
resetRefund: () => void;
|
|
5
|
+
incrementItem: (item: RefundItem) => void;
|
|
6
|
+
decrementItem: (item: RefundItem) => void;
|
|
7
|
+
removeSurcharge: (surcharge: OrderSurcharge) => void;
|
|
8
|
+
addBackSurcharge: (surcharge: OrderSurcharge) => void;
|
|
9
|
+
removeTip: (tip: Money) => void;
|
|
10
|
+
addBackTip: () => void;
|
|
11
|
+
removeShipping: (shipping: Money) => void;
|
|
12
|
+
addBackShipping: () => void;
|
|
13
|
+
removeTax: () => void;
|
|
14
|
+
addBackTax: () => void;
|
|
15
|
+
refundInFull: () => void;
|
|
16
|
+
};
|
|
17
|
+
export default useRefund;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var emptyState = {
|
|
6
|
+
full_refund: false,
|
|
7
|
+
all_taxes: false,
|
|
8
|
+
items: [],
|
|
9
|
+
surcharges: [],
|
|
10
|
+
tip: '0.00',
|
|
11
|
+
shipping: '0.00'
|
|
12
|
+
};
|
|
13
|
+
var useRefund = function (initialState) {
|
|
14
|
+
if (initialState === void 0) { initialState = {}; }
|
|
15
|
+
var _a = (0, react_1.useState)(tslib_1.__assign(tslib_1.__assign({}, emptyState), initialState)), refund = _a[0], setRefund = _a[1];
|
|
16
|
+
var resetRefund = function () {
|
|
17
|
+
setRefund(emptyState);
|
|
18
|
+
};
|
|
19
|
+
var refundInFull = function () {
|
|
20
|
+
setRefund(tslib_1.__assign(tslib_1.__assign({}, emptyState), { full_refund: true }));
|
|
21
|
+
};
|
|
22
|
+
var updateItems = function (refundItem) {
|
|
23
|
+
var otherItems = refund.items.filter(function (i) { return i.item_no !== refundItem.item_no; });
|
|
24
|
+
var items = refundItem.quantity ? tslib_1.__spreadArray(tslib_1.__spreadArray([], otherItems, true), [refundItem], false) : otherItems;
|
|
25
|
+
setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { items: items }));
|
|
26
|
+
};
|
|
27
|
+
var incrementItem = function (item) {
|
|
28
|
+
var quantity = item.quantity, item_no = item.item_no;
|
|
29
|
+
var currentItem = refund.items.find(function (i) { return i.item_no === item_no; });
|
|
30
|
+
var newQuantity = currentItem ? currentItem.quantity + 1 : 1;
|
|
31
|
+
var updatedQuantity = Math.min(newQuantity, quantity);
|
|
32
|
+
var refundItem = { item_no: item_no, quantity: updatedQuantity };
|
|
33
|
+
updateItems(refundItem);
|
|
34
|
+
};
|
|
35
|
+
var decrementItem = function (item) {
|
|
36
|
+
var item_no = item.item_no;
|
|
37
|
+
var currentItem = refund.items.find(function (i) { return i.item_no === item_no; });
|
|
38
|
+
var newQuantity = currentItem ? currentItem.quantity - 1 : 0;
|
|
39
|
+
var updatedQuantity = Math.max(newQuantity, 0);
|
|
40
|
+
var refundItem = { item_no: item_no, quantity: updatedQuantity };
|
|
41
|
+
updateItems(refundItem);
|
|
42
|
+
};
|
|
43
|
+
var removeSurcharge = function (surcharge) {
|
|
44
|
+
var current = refund.surcharges.find(function (i) { return i.surcharge_id === surcharge.id; });
|
|
45
|
+
if (current)
|
|
46
|
+
return;
|
|
47
|
+
var surcharges = tslib_1.__spreadArray(tslib_1.__spreadArray([], (refund.surcharges || []), true), [
|
|
48
|
+
{ surcharge_id: surcharge.id }
|
|
49
|
+
], false);
|
|
50
|
+
setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { surcharges: surcharges }));
|
|
51
|
+
};
|
|
52
|
+
var addBackSurcharge = function (surcharge) {
|
|
53
|
+
var surcharges = refund.surcharges.filter(function (i) { return i.surcharge_id !== surcharge.id; });
|
|
54
|
+
setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { surcharges: surcharges }));
|
|
55
|
+
};
|
|
56
|
+
var removeTip = function (tip) {
|
|
57
|
+
setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { tip: tip }));
|
|
58
|
+
};
|
|
59
|
+
var addBackTip = function () {
|
|
60
|
+
setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { tip: '0.00' }));
|
|
61
|
+
};
|
|
62
|
+
var removeShipping = function (shipping) {
|
|
63
|
+
setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { shipping: shipping }));
|
|
64
|
+
};
|
|
65
|
+
var addBackShipping = function () {
|
|
66
|
+
setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { shipping: '0.00' }));
|
|
67
|
+
};
|
|
68
|
+
var removeTax = function () {
|
|
69
|
+
setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { all_taxes: true }));
|
|
70
|
+
};
|
|
71
|
+
var addBackTax = function () {
|
|
72
|
+
setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { all_taxes: false }));
|
|
73
|
+
};
|
|
74
|
+
return {
|
|
75
|
+
refund: refund,
|
|
76
|
+
resetRefund: resetRefund,
|
|
77
|
+
incrementItem: incrementItem,
|
|
78
|
+
decrementItem: decrementItem,
|
|
79
|
+
removeSurcharge: removeSurcharge,
|
|
80
|
+
addBackSurcharge: addBackSurcharge,
|
|
81
|
+
removeTip: removeTip,
|
|
82
|
+
addBackTip: addBackTip,
|
|
83
|
+
removeShipping: removeShipping,
|
|
84
|
+
addBackShipping: addBackShipping,
|
|
85
|
+
removeTax: removeTax,
|
|
86
|
+
addBackTax: addBackTax,
|
|
87
|
+
refundInFull: refundInFull
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
exports.default = useRefund;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Arrivals, CashEvent, CashSummary, Config, CustomerCheckout, CustomerIdentifier, DeviceRead, Discount, Discounts, Employee, Employees, EntityType, ErrorAlert, ErrorAlerts, FetchOrdersAPIArgs, GiftCardBalance, GiftCardCredit, InternalSettings, ItemTypes, LevelUp, Menu, MenuColors, MenuPages, OfflineAuths, OfflineAuthsResult, Order, OrderCreate, Orders, OrderTender, OrderType, OrderUpdate, Punch, Refund, RequestedAt, RevenueCenter, SelectOptions, ServiceType, Settings, Store, Surcharges, Taxes, Tender, TicketStatusUpdate, TicketsUpdate, TicketUpdate } from '../types';
|
|
1
|
+
import { Arrivals, CashEvent, CashSummary, Config, CustomerCheckout, CustomerIdentifier, DeviceRead, Discount, Discounts, Employee, Employees, EntityType, ErrorAlert, ErrorAlerts, FetchOrdersAPIArgs, GiftCardBalance, GiftCardCredit, InternalSettings, ItemTypes, KioskConfig, LevelUp, Menu, MenuColors, MenuPages, OfflineAuths, OfflineAuthsResult, Order, OrderCreate, Orders, OrderTender, OrderType, OrderUpdate, Punch, Refund, RequestedAt, RevenueCenter, SelectOptions, ServiceType, Settings, Store, Surcharges, Taxes, Tender, TicketStatusUpdate, TicketsUpdate, TicketUpdate } from '../types';
|
|
2
2
|
interface ConfigAPI {
|
|
3
3
|
apiUrl: string;
|
|
4
4
|
}
|
|
@@ -8,6 +8,7 @@ declare class PosAPI {
|
|
|
8
8
|
request: <T>(endpoint: string, method?: string, data?: any) => Promise<T | null | undefined>;
|
|
9
9
|
post(endpoint: string, data: Record<string, unknown>): Promise<Record<string, unknown> | null | undefined>;
|
|
10
10
|
getConfig(): Promise<Config | null | undefined>;
|
|
11
|
+
getKioskConfig(): Promise<KioskConfig | null | undefined>;
|
|
11
12
|
getStore(): Promise<Store | null | undefined>;
|
|
12
13
|
getSelectOptions(): Promise<SelectOptions | null | undefined>;
|
|
13
14
|
getItemTypes(): Promise<ItemTypes | null | undefined>;
|
package/dist/cjs/services/api.js
CHANGED
|
@@ -92,6 +92,9 @@ var PosAPI = /** @class */ (function () {
|
|
|
92
92
|
PosAPI.prototype.getConfig = function () {
|
|
93
93
|
return this.request("/config");
|
|
94
94
|
};
|
|
95
|
+
PosAPI.prototype.getKioskConfig = function () {
|
|
96
|
+
return this.request("/config-kiosk");
|
|
97
|
+
};
|
|
95
98
|
PosAPI.prototype.getStore = function () {
|
|
96
99
|
return this.request("/store");
|
|
97
100
|
};
|