@truedat/core 4.37.3 → 4.37.4

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/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
1
  # Changelog
2
2
 
3
- ## [Unreleased]
3
+ ## [4.37.4] 2022-02-04
4
+
5
+ ### Changed
6
+
7
+ - [TD-4424] `UserFilters` are now disabled when the `SelectedFilters` `loading`
8
+ prop is truthy
9
+
10
+ ## [4.37.3] 2022-02-03
4
11
 
5
12
  ### Added
6
13
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@truedat/core",
3
- "version": "4.37.3",
3
+ "version": "4.37.4",
4
4
  "description": "Truedat Web Core",
5
5
  "sideEffects": false,
6
6
  "jsnext:main": "src/index.js",
@@ -104,5 +104,5 @@
104
104
  "react-dom": ">= 16.8.6 < 17",
105
105
  "semantic-ui-react": ">= 0.88.2 < 2.1"
106
106
  },
107
- "gitHead": "1c418784d34e171a6d62dd7fab3dfd05400998ba"
107
+ "gitHead": "d6a390c1a843d164c28cf7ae174126b6c0e24618"
108
108
  }
@@ -28,7 +28,7 @@ export const SelectedFilters = ({
28
28
  filterItemMapping,
29
29
  }) => (
30
30
  <>
31
- {!_.isEmpty(userFilters) && (
31
+ {_.isEmpty(userFilters) ? null : (
32
32
  <UserFilters
33
33
  applyUserFilter={applyUserFilter}
34
34
  userFilterScope={userFilterScope}
@@ -36,6 +36,7 @@ export const SelectedFilters = ({
36
36
  resetFilters={resetFilters}
37
37
  selectedUserFilter={selectedUserFilter}
38
38
  userFilters={userFilters}
39
+ disabled={loading}
39
40
  />
40
41
  )}
41
42
  <div className="selectedFilters">
@@ -8,68 +8,69 @@ import { ConfirmModal } from "./ConfirmModal";
8
8
  export const UserFilters = ({
9
9
  applyUserFilter,
10
10
  deleteUserFilter,
11
+ disabled,
11
12
  resetFilters,
12
13
  selectedUserFilter,
13
14
  userFilters,
14
15
  userFilterScope,
15
16
  }) => {
16
- return (
17
- <>
18
- {!_.isEmpty(userFilters) && (
19
- <div className="selectedFilters">
20
- {userFilters.map((userFilter, i) => (
21
- <Label
22
- basic={selectedUserFilter == userFilter.name ? false : true}
23
- circular={true}
24
- key={`label${userFilter.id}.${i}`}
25
- >
26
- <span
27
- onClick={(e) => {
28
- e.preventDefault();
29
- e.stopPropagation();
30
- if (selectedUserFilter == userFilter.name) {
31
- resetFilters();
32
- } else {
33
- applyUserFilter({ userFilter, scope: userFilterScope });
17
+ return _.isEmpty(userFilters) ? null : (
18
+ <div className="selectedFilters">
19
+ {userFilters.map((userFilter, i) => (
20
+ <Label
21
+ basic={selectedUserFilter == userFilter.name ? false : true}
22
+ circular={true}
23
+ key={`label${userFilter.id}.${i}`}
24
+ >
25
+ <span
26
+ onClick={
27
+ disabled
28
+ ? null
29
+ : (e) => {
30
+ e.preventDefault();
31
+ e.stopPropagation();
32
+ if (selectedUserFilter == userFilter.name) {
33
+ resetFilters();
34
+ } else {
35
+ applyUserFilter({ userFilter, scope: userFilterScope });
36
+ }
34
37
  }
35
- }}
36
- className="userFilter"
37
- >
38
- {userFilter.name}
39
- </span>
38
+ }
39
+ className="userFilter"
40
+ >
41
+ {userFilter.name}
42
+ </span>
40
43
 
41
- <ConfirmModal
42
- icon="trash"
43
- trigger={
44
- <Icon
45
- className="selectable"
46
- color="grey"
47
- size="small"
48
- name="trash alternate outline"
49
- />
50
- }
51
- header={
52
- <FormattedMessage id="search.filters.actions.delete.confirmation.header" />
53
- }
54
- content={
55
- <FormattedMessage
56
- id="search.filters.actions.delete.confirmation.content"
57
- values={{
58
- name: (
59
- <b>
60
- <i>{userFilter.name}</i>
61
- </b>
62
- ),
63
- }}
64
- />
65
- }
66
- onConfirm={() => deleteUserFilter({ id: userFilter.id })}
44
+ <ConfirmModal
45
+ icon="trash"
46
+ trigger={
47
+ <Icon
48
+ className="selectable"
49
+ color="grey"
50
+ size="small"
51
+ name="trash alternate outline"
52
+ />
53
+ }
54
+ header={
55
+ <FormattedMessage id="search.filters.actions.delete.confirmation.header" />
56
+ }
57
+ content={
58
+ <FormattedMessage
59
+ id="search.filters.actions.delete.confirmation.content"
60
+ values={{
61
+ name: (
62
+ <b>
63
+ <i>{userFilter.name}</i>
64
+ </b>
65
+ ),
66
+ }}
67
67
  />
68
- </Label>
69
- ))}
70
- </div>
71
- )}
72
- </>
68
+ }
69
+ onConfirm={() => deleteUserFilter({ id: userFilter.id })}
70
+ />
71
+ </Label>
72
+ ))}
73
+ </div>
73
74
  );
74
75
  };
75
76
 
@@ -79,6 +80,7 @@ UserFilters.propTypes = {
79
80
  resetFilters: PropTypes.func,
80
81
  selectedUserFilter: PropTypes.string,
81
82
  userFilters: PropTypes.array,
83
+ disabled: PropTypes.bool,
82
84
  userFilterScope: PropTypes.string,
83
85
  };
84
86
 
@@ -1,98 +1,96 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`<UserFilters /> matches the latest snapshot 1`] = `
4
- <Fragment>
5
- <div
6
- className="selectedFilters"
4
+ <div
5
+ className="selectedFilters"
6
+ >
7
+ <Label
8
+ basic={true}
9
+ circular={true}
10
+ key="labelundefined.0"
7
11
  >
8
- <Label
9
- basic={true}
10
- circular={true}
11
- key="labelundefined.0"
12
+ <span
13
+ className="userFilter"
14
+ onClick={[Function]}
12
15
  >
13
- <span
14
- className="userFilter"
15
- onClick={[Function]}
16
- >
17
- a
18
- </span>
19
- <ConfirmModal
20
- content={
21
- <Memo(MemoizedFormattedMessage)
22
- id="search.filters.actions.delete.confirmation.content"
23
- values={
24
- Object {
25
- "name": <b>
26
- <i>
27
- a
28
- </i>
29
- </b>,
30
- }
16
+ a
17
+ </span>
18
+ <ConfirmModal
19
+ content={
20
+ <Memo(MemoizedFormattedMessage)
21
+ id="search.filters.actions.delete.confirmation.content"
22
+ values={
23
+ Object {
24
+ "name": <b>
25
+ <i>
26
+ a
27
+ </i>
28
+ </b>,
31
29
  }
32
- />
33
- }
34
- header={
35
- <Memo(MemoizedFormattedMessage)
36
- id="search.filters.actions.delete.confirmation.header"
37
- />
38
- }
39
- icon="trash"
40
- onConfirm={[Function]}
41
- trigger={
42
- <Icon
43
- as="i"
44
- className="selectable"
45
- color="grey"
46
- name="trash alternate outline"
47
- size="small"
48
- />
49
- }
50
- />
51
- </Label>
52
- <Label
53
- basic={true}
54
- circular={true}
55
- key="labelundefined.1"
30
+ }
31
+ />
32
+ }
33
+ header={
34
+ <Memo(MemoizedFormattedMessage)
35
+ id="search.filters.actions.delete.confirmation.header"
36
+ />
37
+ }
38
+ icon="trash"
39
+ onConfirm={[Function]}
40
+ trigger={
41
+ <Icon
42
+ as="i"
43
+ className="selectable"
44
+ color="grey"
45
+ name="trash alternate outline"
46
+ size="small"
47
+ />
48
+ }
49
+ />
50
+ </Label>
51
+ <Label
52
+ basic={true}
53
+ circular={true}
54
+ key="labelundefined.1"
55
+ >
56
+ <span
57
+ className="userFilter"
58
+ onClick={[Function]}
56
59
  >
57
- <span
58
- className="userFilter"
59
- onClick={[Function]}
60
- >
61
- b
62
- </span>
63
- <ConfirmModal
64
- content={
65
- <Memo(MemoizedFormattedMessage)
66
- id="search.filters.actions.delete.confirmation.content"
67
- values={
68
- Object {
69
- "name": <b>
70
- <i>
71
- b
72
- </i>
73
- </b>,
74
- }
60
+ b
61
+ </span>
62
+ <ConfirmModal
63
+ content={
64
+ <Memo(MemoizedFormattedMessage)
65
+ id="search.filters.actions.delete.confirmation.content"
66
+ values={
67
+ Object {
68
+ "name": <b>
69
+ <i>
70
+ b
71
+ </i>
72
+ </b>,
75
73
  }
76
- />
77
- }
78
- header={
79
- <Memo(MemoizedFormattedMessage)
80
- id="search.filters.actions.delete.confirmation.header"
81
- />
82
- }
83
- icon="trash"
84
- onConfirm={[Function]}
85
- trigger={
86
- <Icon
87
- as="i"
88
- className="selectable"
89
- color="grey"
90
- name="trash alternate outline"
91
- size="small"
92
- />
93
- }
94
- />
95
- </Label>
96
- </div>
97
- </Fragment>
74
+ }
75
+ />
76
+ }
77
+ header={
78
+ <Memo(MemoizedFormattedMessage)
79
+ id="search.filters.actions.delete.confirmation.header"
80
+ />
81
+ }
82
+ icon="trash"
83
+ onConfirm={[Function]}
84
+ trigger={
85
+ <Icon
86
+ as="i"
87
+ className="selectable"
88
+ color="grey"
89
+ name="trash alternate outline"
90
+ size="small"
91
+ />
92
+ }
93
+ />
94
+ </Label>
95
+ </div>
98
96
  `;
@@ -28,21 +28,17 @@ export const getSearchPayload = (searchQuery, props) => {
28
28
  ]);
29
29
  };
30
30
 
31
- export const formatFilterValues =
32
- (implementationSelectedFilter) => (values) => {
33
- if (implementationSelectedFilter === "taxonomy") {
34
- const domains = _.flow(
35
- _.map((domain) => ({
36
- ...domain,
37
- parent_id: _.head(domain.parent_ids),
38
- })),
39
- _.map(_.omit(["parent_ids"]))
40
- )(values);
41
- return getDomainSelectorOptions({ domains });
42
- }
31
+ export const formatFilterValues = (selectedFilter) => (values) => {
32
+ if (selectedFilter === "taxonomy") {
33
+ const domains = _.flow(
34
+ _.map((domain) => ({ ...domain, parent_id: _.head(domain.parent_ids) })),
35
+ _.map(_.omit(["parent_ids"]))
36
+ )(values);
37
+ return getDomainSelectorOptions({ domains });
38
+ }
43
39
 
44
- return values;
45
- };
40
+ return values;
41
+ };
46
42
 
47
43
  export const toFilterValues = (filterValues) =>
48
44
  _.map((v) => (_.isObject(v) ? v.id : v))(filterValues);