@bento-core/facet-filter 1.0.1-ccdihub.38 → 1.0.1-ccdihub.39

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.
@@ -36,10 +36,27 @@ const NewFacetView = _ref => {
36
36
  queryParams,
37
37
  timeUnitState,
38
38
  onTimeUnitChange,
39
- unknownAgesState
39
+ unknownAgesState,
40
+ expandState,
41
+ onToggleFacetExpand
40
42
  } = _ref;
41
- const [expand, setExpand] = (0, _react.useState)(facet.expanded !== undefined && typeof facet.expanded === 'boolean' ? facet.expanded : false);
42
- const onExpandFacet = () => setExpand(!expand);
43
+ const expand = expandState[facet.datafield] !== undefined ? expandState[facet.datafield] : facet.expanded !== undefined && typeof facet.expanded === 'boolean' ? facet.expanded : false;
44
+ const isUserInitiated = (0, _react.useRef)(false);
45
+ const prevExpandRef = (0, _react.useRef)(expand);
46
+ (0, _react.useEffect)(() => {
47
+ prevExpandRef.current = expand;
48
+ // Reset flag after render
49
+ if (isUserInitiated.current) {
50
+ setTimeout(() => {
51
+ isUserInitiated.current = false;
52
+ }, 0);
53
+ }
54
+ }, [expand]);
55
+ const onExpandFacet = () => {
56
+ isUserInitiated.current = true;
57
+ const newExpandState = !expand;
58
+ onToggleFacetExpand(facet.datafield, newExpandState);
59
+ };
43
60
  const query = new URLSearchParams((0, _reactRouterDom.useLocation)().search);
44
61
  const navigate = (0, _reactRouterDom.useNavigate)();
45
62
 
@@ -114,7 +131,11 @@ const NewFacetView = _ref => {
114
131
  classes: {
115
132
  root: classes.expansionPanelsideBarItem
116
133
  },
117
- id: facet.section
134
+ id: facet.section,
135
+ TransitionProps: {
136
+ // Disable animation if change is not user-initiated
137
+ timeout: isUserInitiated.current ? undefined : 0
138
+ }
118
139
  }, CustomView ? /*#__PURE__*/_react.default.createElement(CustomView, {
119
140
  facet: facet,
120
141
  facetClasses: isActiveFacet ? "activeFacet".concat(facet.section) : "inactiveFacet".concat(facet.section)
@@ -58,11 +58,28 @@ const SearchFacetView = _ref => {
58
58
  onSortChange,
59
59
  CustomView,
60
60
  queryParams,
61
- unknownAgesState
61
+ unknownAgesState,
62
+ expandState,
63
+ onToggleFacetExpand
62
64
  } = _ref;
63
- const [expand, setExpand] = (0, _react.useState)(facet.expanded !== undefined && typeof facet.expanded === 'boolean' ? facet.expanded : false);
65
+ const expand = expandState[facet.datafield] !== undefined ? expandState[facet.datafield] : facet.expanded !== undefined && typeof facet.expanded === 'boolean' ? facet.expanded : false;
66
+ const isUserInitiated = (0, _react.useRef)(false);
67
+ const prevExpandRef = (0, _react.useRef)(expand);
68
+ (0, _react.useEffect)(() => {
69
+ prevExpandRef.current = expand;
70
+ // Reset flag after render
71
+ if (isUserInitiated.current) {
72
+ setTimeout(() => {
73
+ isUserInitiated.current = false;
74
+ }, 0);
75
+ }
76
+ }, [expand]);
77
+ const onExpandFacet = () => {
78
+ isUserInitiated.current = true;
79
+ const newExpandState = !expand;
80
+ onToggleFacetExpand(facet.datafield, newExpandState);
81
+ };
64
82
  const [open, setOpen] = (0, _react.useState)(false);
65
- const onExpandFacet = () => setExpand(!expand);
66
83
  const query = new URLSearchParams((0, _reactRouterDom.useLocation)().search);
67
84
  const navigate = (0, _reactRouterDom.useNavigate)();
68
85
  const onClearSection = () => {
@@ -132,7 +149,11 @@ const SearchFacetView = _ref => {
132
149
  classes: {
133
150
  root: classes.expansionPanelsideBarItem
134
151
  },
135
- id: facet.section
152
+ id: facet.section,
153
+ TransitionProps: {
154
+ // Disable animation if change is not user-initiated
155
+ timeout: isUserInitiated.current ? undefined : 0
156
+ }
136
157
  }, CustomView ? /*#__PURE__*/_react.default.createElement(CustomView, {
137
158
  facet: facet,
138
159
  facetClasses: isActiveFacet ? "activeFacet".concat(facet.section) : "inactiveFacet".concat(facet.section)
@@ -11,10 +11,11 @@ var _NewFacetView = _interopRequireDefault(require("./NewFacetView"));
11
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
12
  const ReduxNewFacetView = props => /*#__PURE__*/_react.default.createElement(_NewFacetView.default, props);
13
13
  const mapStateToProps = state => {
14
- var _state$statusReducer, _state$statusReducer2;
14
+ var _state$statusReducer, _state$statusReducer2, _state$statusReducer3;
15
15
  return {
16
16
  timeUnitState: (state === null || state === void 0 ? void 0 : (_state$statusReducer = state.statusReducer) === null || _state$statusReducer === void 0 ? void 0 : _state$statusReducer.timeUnitState) || {},
17
- unknownAgesState: (state === null || state === void 0 ? void 0 : (_state$statusReducer2 = state.statusReducer) === null || _state$statusReducer2 === void 0 ? void 0 : _state$statusReducer2.unknownAgesState) || {}
17
+ unknownAgesState: (state === null || state === void 0 ? void 0 : (_state$statusReducer2 = state.statusReducer) === null || _state$statusReducer2 === void 0 ? void 0 : _state$statusReducer2.unknownAgesState) || {},
18
+ expandState: (state === null || state === void 0 ? void 0 : (_state$statusReducer3 = state.statusReducer) === null || _state$statusReducer3 === void 0 ? void 0 : _state$statusReducer3.expandState) || {}
18
19
  };
19
20
  };
20
21
  const mapDispatchToProps = dispatch => ({
@@ -29,6 +30,9 @@ const mapDispatchToProps = dispatch => ({
29
30
  },
30
31
  onUnknownAgesChange: (datafield, unknownAges) => {
31
32
  dispatch((0, _Actions.unknownAgesChange)(datafield, unknownAges));
33
+ },
34
+ onToggleFacetExpand: (datafield, expanded) => {
35
+ dispatch((0, _Actions.toggleFacetExpand)(datafield, expanded));
32
36
  }
33
37
  });
34
38
  var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ReduxNewFacetView);
@@ -13,11 +13,12 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
13
13
 
14
14
  const ReduxNewSearchFacetView = props => /*#__PURE__*/_react.default.createElement(_NewSearchFacetView.default, props);
15
15
  const mapStateToProps = (state, ownProps) => {
16
- var _state$statusReducer, _state$statusReducer2;
16
+ var _state$statusReducer, _state$statusReducer2, _state$statusReducer3;
17
17
  return {
18
18
  searchText: ((_state$statusReducer = state.statusReducer) === null || _state$statusReducer === void 0 ? void 0 : _state$statusReducer.searchState[ownProps.facet.datafield]) || '',
19
19
  sortBy: state.statusReducer.sortState[ownProps.facet.datafield] || null,
20
- unknownAgesState: (state === null || state === void 0 ? void 0 : (_state$statusReducer2 = state.statusReducer) === null || _state$statusReducer2 === void 0 ? void 0 : _state$statusReducer2.unknownAgesState) || {}
20
+ unknownAgesState: (state === null || state === void 0 ? void 0 : (_state$statusReducer2 = state.statusReducer) === null || _state$statusReducer2 === void 0 ? void 0 : _state$statusReducer2.unknownAgesState) || {},
21
+ expandState: (state === null || state === void 0 ? void 0 : (_state$statusReducer3 = state.statusReducer) === null || _state$statusReducer3 === void 0 ? void 0 : _state$statusReducer3.expandState) || {}
21
22
  };
22
23
  };
23
24
  const mapDispatchToProps = dispatch => ({
@@ -35,6 +36,9 @@ const mapDispatchToProps = dispatch => ({
35
36
  },
36
37
  onUnknownAgesChange: (datafield, unknownAges) => {
37
38
  dispatch((0, _Actions.unknownAgesChange)(datafield, unknownAges));
39
+ },
40
+ onToggleFacetExpand: (datafield, expanded) => {
41
+ dispatch((0, _Actions.toggleFacetExpand)(datafield, expanded));
38
42
  }
39
43
  });
40
44
  var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ReduxNewSearchFacetView);
@@ -15,7 +15,8 @@ const sideBarActionTypes = {
15
15
  SORT_CHANGED: 'SORT_CHANGED',
16
16
  UPDATE_FILTER_STATE: 'UPDATE_FILTER_STATE',
17
17
  TIME_UNIT_CHANGED: 'TIME_UNIT_CHANGED',
18
- UNKNOWN_AGES_CHANGED: 'UNKNOWN_AGES_CHANGED'
18
+ UNKNOWN_AGES_CHANGED: 'UNKNOWN_AGES_CHANGED',
19
+ TOGGLE_FACET_EXPAND: 'TOGGLE_FACET_EXPAND'
19
20
  };
20
21
  exports.sideBarActionTypes = sideBarActionTypes;
21
22
  const Actions = '';
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.updateFilterState = exports.unknownAgesChange = exports.toggleSilder = exports.toggleCheckBox = exports.timeUnitChange = exports.sortChange = exports.searchTextChange = exports.clearSliderSection = exports.clearFacetSection = exports.clearAllFilters = exports.clearAllAndSelectFacet = void 0;
6
+ exports.updateFilterState = exports.unknownAgesChange = exports.toggleSilder = exports.toggleFacetExpand = exports.toggleCheckBox = exports.timeUnitChange = exports.sortChange = exports.searchTextChange = exports.clearSliderSection = exports.clearFacetSection = exports.clearAllFilters = exports.clearAllAndSelectFacet = void 0;
7
7
  var _ActionTypes = require("./ActionTypes");
8
8
  const toggleCheckBox = toggleCheckBoxItem => ({
9
9
  type: _ActionTypes.sideBarActionTypes.FACET_VALUE_CHANGED,
@@ -74,4 +74,12 @@ const unknownAgesChange = (datafield, unknownAges) => ({
74
74
  unknownAges
75
75
  }
76
76
  });
77
- exports.unknownAgesChange = unknownAgesChange;
77
+ exports.unknownAgesChange = unknownAgesChange;
78
+ const toggleFacetExpand = (datafield, expanded) => ({
79
+ type: _ActionTypes.sideBarActionTypes.TOGGLE_FACET_EXPAND,
80
+ payload: {
81
+ datafield,
82
+ expanded
83
+ }
84
+ });
85
+ exports.toggleFacetExpand = toggleFacetExpand;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.onUnknownAgesChange = exports.onToggleStateUpdate = exports.onTimeUnitChange = exports.onSortChange = exports.onSearchTextChange = exports.onClearSliderSection = exports.onClearFacetSection = void 0;
6
+ exports.onUnknownAgesChange = exports.onToggleStateUpdate = exports.onToggleFacetExpand = exports.onTimeUnitChange = exports.onSortChange = exports.onSearchTextChange = exports.onClearSliderSection = exports.onClearFacetSection = void 0;
7
7
  exports.sideBarReducerGenerator = sideBarReducerGenerator;
8
8
  exports.updateSiderValue = void 0;
9
9
  var _ActionTypes = require("../actions/ActionTypes");
@@ -16,8 +16,10 @@ const initFilterState = {
16
16
  searchState: {},
17
17
  sortState: {},
18
18
  timeUnitState: {},
19
- unknownAgesState: {}
19
+ unknownAgesState: {},
20
+ expandState: {} // Add this line
20
21
  };
22
+
21
23
  const onToggleStateUpdate = _ref => {
22
24
  let {
23
25
  filterState,
@@ -122,6 +124,17 @@ const onUnknownAgesChange = _ref8 => {
122
124
  return updatedState;
123
125
  };
124
126
  exports.onUnknownAgesChange = onUnknownAgesChange;
127
+ const onToggleFacetExpand = _ref9 => {
128
+ let {
129
+ datafield,
130
+ expanded,
131
+ expandState
132
+ } = _ref9;
133
+ const updatedState = _objectSpread({}, expandState);
134
+ updatedState[datafield] = expanded;
135
+ return updatedState;
136
+ };
137
+ exports.onToggleFacetExpand = onToggleFacetExpand;
125
138
  function sideBarReducerGenerator() {
126
139
  return {
127
140
  actionTypes: _ActionTypes.sideBarActionTypes,
@@ -196,6 +209,11 @@ function sideBarReducerGenerator() {
196
209
  return _objectSpread(_objectSpread({}, state), {}, {
197
210
  unknownAgesState: _objectSpread({}, updateState)
198
211
  });
212
+ case _ActionTypes.sideBarActionTypes.TOGGLE_FACET_EXPAND:
213
+ updateState = onToggleFacetExpand(_objectSpread(_objectSpread({}, payload), state));
214
+ return _objectSpread(_objectSpread({}, state), {}, {
215
+ expandState: _objectSpread({}, updateState)
216
+ });
199
217
  default:
200
218
  return state;
201
219
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bento-core/facet-filter",
3
- "version": "1.0.1-ccdihub.38",
3
+ "version": "1.0.1-ccdihub.39",
4
4
  "description": "### Bento core sidebar design:",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -1,4 +1,4 @@
1
- import React, { useState } from 'react';
1
+ import React, { useState, useRef, useEffect } from 'react';
2
2
  import {
3
3
  useLocation,
4
4
  useNavigate,
@@ -31,9 +31,30 @@ const NewFacetView = ({
31
31
  timeUnitState,
32
32
  onTimeUnitChange,
33
33
  unknownAgesState,
34
+ expandState,
35
+ onToggleFacetExpand,
34
36
  }) => {
35
- const [expand, setExpand] = useState(facet.expanded !== undefined && typeof facet.expanded === 'boolean' ? facet.expanded : false);
36
- const onExpandFacet = () => setExpand(!expand);
37
+ const expand = expandState[facet.datafield] !== undefined ? expandState[facet.datafield] : (facet.expanded !== undefined && typeof facet.expanded === 'boolean' ? facet.expanded : false);
38
+
39
+ const isUserInitiated = useRef(false);
40
+ const prevExpandRef = useRef(expand);
41
+
42
+ useEffect(() => {
43
+ prevExpandRef.current = expand;
44
+ // Reset flag after render
45
+ if (isUserInitiated.current) {
46
+ setTimeout(() => {
47
+ isUserInitiated.current = false;
48
+ }, 0);
49
+ }
50
+ }, [expand]);
51
+
52
+ const onExpandFacet = () => {
53
+ isUserInitiated.current = true;
54
+ const newExpandState = !expand;
55
+ onToggleFacetExpand(facet.datafield, newExpandState);
56
+ };
57
+
37
58
  const query = new URLSearchParams(useLocation().search);
38
59
  const navigate = useNavigate();
39
60
 
@@ -110,6 +131,10 @@ const NewFacetView = ({
110
131
  root: classes.expansionPanelsideBarItem,
111
132
  }}
112
133
  id={facet.section}
134
+ TransitionProps={{
135
+ // Disable animation if change is not user-initiated
136
+ timeout: isUserInitiated.current ? undefined : 0,
137
+ }}
113
138
  >
114
139
  { CustomView ? (
115
140
  <CustomView
@@ -1,4 +1,4 @@
1
- import React, { useState } from 'react';
1
+ import React, { useState, useRef, useEffect } from 'react';
2
2
  import {
3
3
  useLocation,
4
4
  useNavigate,
@@ -56,10 +56,31 @@ const SearchFacetView = ({
56
56
  CustomView,
57
57
  queryParams,
58
58
  unknownAgesState,
59
+ expandState,
60
+ onToggleFacetExpand,
59
61
  }) => {
60
- const [expand, setExpand] = useState(facet.expanded !== undefined && typeof facet.expanded === 'boolean' ? facet.expanded : false);
62
+ const expand = expandState[facet.datafield] !== undefined ? expandState[facet.datafield] : (facet.expanded !== undefined && typeof facet.expanded === 'boolean' ? facet.expanded : false);
63
+
64
+ const isUserInitiated = useRef(false);
65
+ const prevExpandRef = useRef(expand);
66
+
67
+ useEffect(() => {
68
+ prevExpandRef.current = expand;
69
+ // Reset flag after render
70
+ if (isUserInitiated.current) {
71
+ setTimeout(() => {
72
+ isUserInitiated.current = false;
73
+ }, 0);
74
+ }
75
+ }, [expand]);
76
+
77
+ const onExpandFacet = () => {
78
+ isUserInitiated.current = true;
79
+ const newExpandState = !expand;
80
+ onToggleFacetExpand(facet.datafield, newExpandState);
81
+ };
82
+
61
83
  const [open, setOpen] = useState(false);
62
- const onExpandFacet = () => setExpand(!expand);
63
84
  const query = new URLSearchParams(useLocation().search);
64
85
  const navigate = useNavigate();
65
86
 
@@ -133,6 +154,10 @@ const SearchFacetView = ({
133
154
  root: classes.expansionPanelsideBarItem,
134
155
  }}
135
156
  id={facet.section}
157
+ TransitionProps={{
158
+ // Disable animation if change is not user-initiated
159
+ timeout: isUserInitiated.current ? undefined : 0,
160
+ }}
136
161
  >
137
162
  {CustomView ? (
138
163
  <CustomView
@@ -5,6 +5,7 @@ import {
5
5
  clearSliderSection,
6
6
  timeUnitChange,
7
7
  unknownAgesChange,
8
+ toggleFacetExpand,
8
9
  } from '../../store/actions/Actions';
9
10
  import NewFacetView from './NewFacetView';
10
11
 
@@ -13,6 +14,7 @@ const ReduxNewFacetView = ((props) => <NewFacetView {...props} />);
13
14
  const mapStateToProps = (state) => ({
14
15
  timeUnitState: state?.statusReducer?.timeUnitState || {},
15
16
  unknownAgesState: state?.statusReducer?.unknownAgesState || {},
17
+ expandState: state?.statusReducer?.expandState || {},
16
18
  });
17
19
 
18
20
  const mapDispatchToProps = (dispatch) => ({
@@ -22,6 +24,9 @@ const mapDispatchToProps = (dispatch) => ({
22
24
  onUnknownAgesChange: (datafield, unknownAges) => {
23
25
  dispatch(unknownAgesChange(datafield, unknownAges));
24
26
  },
27
+ onToggleFacetExpand: (datafield, expanded) => {
28
+ dispatch(toggleFacetExpand(datafield, expanded));
29
+ },
25
30
  });
26
31
 
27
32
  export default connect(mapStateToProps, mapDispatchToProps)(ReduxNewFacetView);
@@ -6,6 +6,7 @@ import {
6
6
  searchTextChange,
7
7
  sortChange,
8
8
  unknownAgesChange,
9
+ toggleFacetExpand,
9
10
  } from '../../store/actions/Actions';
10
11
  // import FacetView from './FacetView';
11
12
  import NewSearchFacetView from './NewSearchFacetView';
@@ -16,6 +17,7 @@ const mapStateToProps = (state, ownProps) => ({
16
17
  searchText: state.statusReducer?.searchState[ownProps.facet.datafield] || '',
17
18
  sortBy: state.statusReducer.sortState[ownProps.facet.datafield] || null,
18
19
  unknownAgesState: state?.statusReducer?.unknownAgesState || {},
20
+ expandState: state?.statusReducer?.expandState || {},
19
21
  });
20
22
 
21
23
  const mapDispatchToProps = (dispatch) => ({
@@ -30,6 +32,9 @@ const mapDispatchToProps = (dispatch) => ({
30
32
  onUnknownAgesChange: (datafield, unknownAges) => {
31
33
  dispatch(unknownAgesChange(datafield, unknownAges));
32
34
  },
35
+ onToggleFacetExpand: (datafield, expanded) => {
36
+ dispatch(toggleFacetExpand(datafield, expanded));
37
+ },
33
38
  });
34
39
 
35
40
  export default connect(mapStateToProps, mapDispatchToProps)(ReduxNewSearchFacetView);
@@ -10,6 +10,7 @@ export const sideBarActionTypes = {
10
10
  UPDATE_FILTER_STATE: 'UPDATE_FILTER_STATE',
11
11
  TIME_UNIT_CHANGED: 'TIME_UNIT_CHANGED',
12
12
  UNKNOWN_AGES_CHANGED: 'UNKNOWN_AGES_CHANGED',
13
+ TOGGLE_FACET_EXPAND: 'TOGGLE_FACET_EXPAND',
13
14
  };
14
15
 
15
16
  export const Actions = '';
@@ -67,3 +67,11 @@ export const unknownAgesChange = (datafield, unknownAges) => ({
67
67
  unknownAges,
68
68
  },
69
69
  });
70
+
71
+ export const toggleFacetExpand = (datafield, expanded) => ({
72
+ type: sideBarActionTypes.TOGGLE_FACET_EXPAND,
73
+ payload: {
74
+ datafield,
75
+ expanded,
76
+ },
77
+ });
@@ -6,6 +6,7 @@ const initFilterState = {
6
6
  sortState: {},
7
7
  timeUnitState: {},
8
8
  unknownAgesState: {},
9
+ expandState: {}, // Add this line
9
10
  };
10
11
 
11
12
  export const onToggleStateUpdate = ({
@@ -100,6 +101,16 @@ export const onUnknownAgesChange = ({
100
101
  return updatedState;
101
102
  };
102
103
 
104
+ export const onToggleFacetExpand = ({
105
+ datafield,
106
+ expanded,
107
+ expandState,
108
+ }) => {
109
+ const updatedState = { ...expandState };
110
+ updatedState[datafield] = expanded;
111
+ return updatedState;
112
+ };
113
+
103
114
  export function sideBarReducerGenerator() {
104
115
  return {
105
116
  actionTypes: sideBarActionTypes,
@@ -177,6 +188,12 @@ export function sideBarReducerGenerator() {
177
188
  ...state,
178
189
  unknownAgesState: { ...updateState },
179
190
  };
191
+ case sideBarActionTypes.TOGGLE_FACET_EXPAND:
192
+ updateState = onToggleFacetExpand({ ...payload, ...state });
193
+ return {
194
+ ...state,
195
+ expandState: { ...updateState },
196
+ };
180
197
  default:
181
198
  return state;
182
199
  }