@open-tender/store 1.1.225 → 1.1.227
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.
|
@@ -10,12 +10,19 @@ var TagsFilter = function (_a) {
|
|
|
10
10
|
var children = _a.children, SwitchView = _a.SwitchView;
|
|
11
11
|
var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).tags;
|
|
12
12
|
var dispatch = (0, hooks_1.useAppDispatch)();
|
|
13
|
-
var _b = (0, hooks_1.useAppSelector)(slices_1.selectTags), tags = _b.entities, selectedTags = _b.selectedTags,
|
|
14
|
-
var _c = (0,
|
|
15
|
-
var
|
|
13
|
+
var _b = (0, hooks_1.useAppSelector)(slices_1.selectTags), tags = _b.entities, selectedTags = _b.selectedTags, loadingTags = _b.loading, errorTags = _b.error, showTagsModal = _b.showTagsModal;
|
|
14
|
+
var _c = (0, hooks_1.useAppSelector)(slices_1.selectAllergens), allergens = _c.entities, selectedAllergens = _c.selectedAllergens, loadingAllergens = _c.loading, errorAllergens = _c.error;
|
|
15
|
+
var customerAllergens = (0, hooks_1.useAppSelector)(slices_1.selectCustomer).allergens;
|
|
16
|
+
var _d = (0, react_1.useState)([]), localSelectedTags = _d[0], setLocalSelectedTags = _d[1];
|
|
17
|
+
var _e = (0, react_1.useState)([]), localSelectedAllergens = _e[0], setLocalSelectedAllergens = _e[1];
|
|
18
|
+
var isLoading = loadingTags === 'pending' || loadingAllergens === 'pending';
|
|
16
19
|
(0, react_1.useEffect)(function () {
|
|
17
20
|
setLocalSelectedTags(selectedTags.map(function (tag) { return tag.tag_id; }));
|
|
18
|
-
|
|
21
|
+
selectedAllergens &&
|
|
22
|
+
setLocalSelectedAllergens(selectedAllergens
|
|
23
|
+
.concat(customerAllergens !== null && customerAllergens !== void 0 ? customerAllergens : [])
|
|
24
|
+
.map(function (allergen) { return allergen.allergen_id; }));
|
|
25
|
+
}, [selectedAllergens, selectedTags, customerAllergens]);
|
|
19
26
|
var onTagSwitch = function (tag) {
|
|
20
27
|
setLocalSelectedTags(function (prevSelectedTags) {
|
|
21
28
|
if (prevSelectedTags.includes(tag.tag_id)) {
|
|
@@ -26,27 +33,47 @@ var TagsFilter = function (_a) {
|
|
|
26
33
|
}
|
|
27
34
|
});
|
|
28
35
|
};
|
|
36
|
+
var onAllergenSwitch = function (allergen) {
|
|
37
|
+
setLocalSelectedAllergens(function (prevSelectedAllergens) {
|
|
38
|
+
if (prevSelectedAllergens.includes(allergen.allergen_id)) {
|
|
39
|
+
return prevSelectedAllergens.filter(function (id) { return id !== allergen.allergen_id; });
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return tslib_1.__spreadArray(tslib_1.__spreadArray([], prevSelectedAllergens, true), [allergen.allergen_id], false);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
};
|
|
29
46
|
var handleSubmit = function () {
|
|
30
47
|
var newSelectedTags = tags.filter(function (tag) {
|
|
31
48
|
return localSelectedTags.includes(tag.tag_id);
|
|
32
49
|
});
|
|
33
50
|
dispatch((0, slices_1.setSelectedTags)(newSelectedTags));
|
|
51
|
+
var newSelectedAllergens = allergens.filter(function (allergen) {
|
|
52
|
+
return localSelectedAllergens.includes(allergen.allergen_id);
|
|
53
|
+
});
|
|
54
|
+
dispatch((0, slices_1.setSelectedAllergens)(newSelectedAllergens));
|
|
34
55
|
toggleTagsFilterModal();
|
|
35
56
|
};
|
|
36
57
|
var toggleTagsFilterModal = function () {
|
|
37
58
|
dispatch((0, slices_1.toggleTagsModal)(!showTagsModal));
|
|
38
59
|
};
|
|
39
|
-
var handlers = {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
60
|
+
var handlers = {
|
|
61
|
+
onTagSwitch: onTagSwitch,
|
|
62
|
+
onAllergenSwitch: onAllergenSwitch,
|
|
63
|
+
handleSubmit: handleSubmit,
|
|
64
|
+
toggleTagsFilterModal: toggleTagsFilterModal
|
|
65
|
+
};
|
|
66
|
+
var renderSwitch = (0, react_1.useCallback)(function (tag, allergen) {
|
|
67
|
+
return tag ? (react_1.default.createElement(Switch_1.default, { key: tag.tag_id, id: tag.tag_id, children: SwitchView, label: (0, utils_1.capitalize)(tag.name), on: localSelectedTags.includes(tag.tag_id), onChange: function () { return onTagSwitch(tag); }, disabled: false, isRequired: true })) : allergen ? (react_1.default.createElement(Switch_1.default, { key: allergen.allergen_id, id: allergen.allergen_id, children: SwitchView, label: (0, utils_1.capitalize)(allergen.name), on: localSelectedAllergens.includes(allergen.allergen_id), onChange: function () { return onAllergenSwitch(allergen); }, disabled: false, isRequired: true })) : null;
|
|
68
|
+
}, [SwitchView, localSelectedAllergens, localSelectedTags]);
|
|
43
69
|
return children({
|
|
44
70
|
config: config,
|
|
45
71
|
handlers: handlers,
|
|
46
72
|
isLoading: isLoading,
|
|
47
73
|
renderSwitch: renderSwitch,
|
|
48
74
|
tags: tags,
|
|
49
|
-
|
|
75
|
+
allergens: allergens,
|
|
76
|
+
error: (errorTags === null || errorTags === void 0 ? void 0 : errorTags.detail) || (errorAllergens === null || errorAllergens === void 0 ? void 0 : errorAllergens.detail)
|
|
50
77
|
});
|
|
51
78
|
};
|
|
52
79
|
exports.default = TagsFilter;
|
|
@@ -2,18 +2,25 @@ import { __spreadArray } from "tslib";
|
|
|
2
2
|
import { capitalize } from '@open-tender/utils';
|
|
3
3
|
import React, { useCallback, useEffect, useState } from 'react';
|
|
4
4
|
import { useAppDispatch, useAppSelector } from '../app/hooks';
|
|
5
|
-
import { selectKioskConfig, selectTags, setSelectedTags, toggleTagsModal } from '../slices';
|
|
5
|
+
import { selectAllergens, selectCustomer, selectKioskConfig, selectTags, setSelectedAllergens, setSelectedTags, toggleTagsModal } from '../slices';
|
|
6
6
|
import { default as SwitchContainer } from './Switch';
|
|
7
7
|
var TagsFilter = function (_a) {
|
|
8
8
|
var children = _a.children, SwitchView = _a.SwitchView;
|
|
9
9
|
var config = useAppSelector(selectKioskConfig).tags;
|
|
10
10
|
var dispatch = useAppDispatch();
|
|
11
|
-
var _b = useAppSelector(selectTags), tags = _b.entities, selectedTags = _b.selectedTags,
|
|
12
|
-
var _c =
|
|
13
|
-
var
|
|
11
|
+
var _b = useAppSelector(selectTags), tags = _b.entities, selectedTags = _b.selectedTags, loadingTags = _b.loading, errorTags = _b.error, showTagsModal = _b.showTagsModal;
|
|
12
|
+
var _c = useAppSelector(selectAllergens), allergens = _c.entities, selectedAllergens = _c.selectedAllergens, loadingAllergens = _c.loading, errorAllergens = _c.error;
|
|
13
|
+
var customerAllergens = useAppSelector(selectCustomer).allergens;
|
|
14
|
+
var _d = useState([]), localSelectedTags = _d[0], setLocalSelectedTags = _d[1];
|
|
15
|
+
var _e = useState([]), localSelectedAllergens = _e[0], setLocalSelectedAllergens = _e[1];
|
|
16
|
+
var isLoading = loadingTags === 'pending' || loadingAllergens === 'pending';
|
|
14
17
|
useEffect(function () {
|
|
15
18
|
setLocalSelectedTags(selectedTags.map(function (tag) { return tag.tag_id; }));
|
|
16
|
-
|
|
19
|
+
selectedAllergens &&
|
|
20
|
+
setLocalSelectedAllergens(selectedAllergens
|
|
21
|
+
.concat(customerAllergens !== null && customerAllergens !== void 0 ? customerAllergens : [])
|
|
22
|
+
.map(function (allergen) { return allergen.allergen_id; }));
|
|
23
|
+
}, [selectedAllergens, selectedTags, customerAllergens]);
|
|
17
24
|
var onTagSwitch = function (tag) {
|
|
18
25
|
setLocalSelectedTags(function (prevSelectedTags) {
|
|
19
26
|
if (prevSelectedTags.includes(tag.tag_id)) {
|
|
@@ -24,27 +31,47 @@ var TagsFilter = function (_a) {
|
|
|
24
31
|
}
|
|
25
32
|
});
|
|
26
33
|
};
|
|
34
|
+
var onAllergenSwitch = function (allergen) {
|
|
35
|
+
setLocalSelectedAllergens(function (prevSelectedAllergens) {
|
|
36
|
+
if (prevSelectedAllergens.includes(allergen.allergen_id)) {
|
|
37
|
+
return prevSelectedAllergens.filter(function (id) { return id !== allergen.allergen_id; });
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return __spreadArray(__spreadArray([], prevSelectedAllergens, true), [allergen.allergen_id], false);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
};
|
|
27
44
|
var handleSubmit = function () {
|
|
28
45
|
var newSelectedTags = tags.filter(function (tag) {
|
|
29
46
|
return localSelectedTags.includes(tag.tag_id);
|
|
30
47
|
});
|
|
31
48
|
dispatch(setSelectedTags(newSelectedTags));
|
|
49
|
+
var newSelectedAllergens = allergens.filter(function (allergen) {
|
|
50
|
+
return localSelectedAllergens.includes(allergen.allergen_id);
|
|
51
|
+
});
|
|
52
|
+
dispatch(setSelectedAllergens(newSelectedAllergens));
|
|
32
53
|
toggleTagsFilterModal();
|
|
33
54
|
};
|
|
34
55
|
var toggleTagsFilterModal = function () {
|
|
35
56
|
dispatch(toggleTagsModal(!showTagsModal));
|
|
36
57
|
};
|
|
37
|
-
var handlers = {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
58
|
+
var handlers = {
|
|
59
|
+
onTagSwitch: onTagSwitch,
|
|
60
|
+
onAllergenSwitch: onAllergenSwitch,
|
|
61
|
+
handleSubmit: handleSubmit,
|
|
62
|
+
toggleTagsFilterModal: toggleTagsFilterModal
|
|
63
|
+
};
|
|
64
|
+
var renderSwitch = useCallback(function (tag, allergen) {
|
|
65
|
+
return tag ? (React.createElement(SwitchContainer, { key: tag.tag_id, id: tag.tag_id, children: SwitchView, label: capitalize(tag.name), on: localSelectedTags.includes(tag.tag_id), onChange: function () { return onTagSwitch(tag); }, disabled: false, isRequired: true })) : allergen ? (React.createElement(SwitchContainer, { key: allergen.allergen_id, id: allergen.allergen_id, children: SwitchView, label: capitalize(allergen.name), on: localSelectedAllergens.includes(allergen.allergen_id), onChange: function () { return onAllergenSwitch(allergen); }, disabled: false, isRequired: true })) : null;
|
|
66
|
+
}, [SwitchView, localSelectedAllergens, localSelectedTags]);
|
|
41
67
|
return children({
|
|
42
68
|
config: config,
|
|
43
69
|
handlers: handlers,
|
|
44
70
|
isLoading: isLoading,
|
|
45
71
|
renderSwitch: renderSwitch,
|
|
46
72
|
tags: tags,
|
|
47
|
-
|
|
73
|
+
allergens: allergens,
|
|
74
|
+
error: (errorTags === null || errorTags === void 0 ? void 0 : errorTags.detail) || (errorAllergens === null || errorAllergens === void 0 ? void 0 : errorAllergens.detail)
|
|
48
75
|
});
|
|
49
76
|
};
|
|
50
77
|
export default TagsFilter;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@open-tender/store",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.227",
|
|
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.96",
|
|
65
|
-
"@open-tender/ui": "^0.4.
|
|
65
|
+
"@open-tender/ui": "^0.4.29",
|
|
66
66
|
"@open-tender/utils": "^0.4.69",
|
|
67
67
|
"@reduxjs/toolkit": "^2.0.1",
|
|
68
68
|
"date-fns": "2.30.0",
|