@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, loading = _b.loading, error = _b.error, showTagsModal = _b.showTagsModal;
14
- var _c = (0, react_1.useState)([]), localSelectedTags = _c[0], setLocalSelectedTags = _c[1];
15
- var isLoading = loading === 'pending';
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
- }, [selectedTags]);
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 = { onTagSwitch: onTagSwitch, handleSubmit: handleSubmit, toggleTagsFilterModal: toggleTagsFilterModal };
40
- var renderSwitch = (0, react_1.useCallback)(function (tag) {
41
- return (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 }));
42
- }, [SwitchView, localSelectedTags]);
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
- error: error === null || error === void 0 ? void 0 : error.detail
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, loading = _b.loading, error = _b.error, showTagsModal = _b.showTagsModal;
12
- var _c = useState([]), localSelectedTags = _c[0], setLocalSelectedTags = _c[1];
13
- var isLoading = loading === 'pending';
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
- }, [selectedTags]);
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 = { onTagSwitch: onTagSwitch, handleSubmit: handleSubmit, toggleTagsFilterModal: toggleTagsFilterModal };
38
- var renderSwitch = useCallback(function (tag) {
39
- return (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 }));
40
- }, [SwitchView, localSelectedTags]);
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
- error: error === null || error === void 0 ? void 0 : error.detail
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.225",
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.28",
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",