@teambit/component.ui.component-filters.env-filter 0.0.26 → 0.0.28

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.
@@ -89,15 +89,24 @@ const deriveEnvsFilterState = (components) => {
89
89
  }, [components]);
90
90
  };
91
91
  function envsFilter({ components, className, lanes }) {
92
+ var _a, _b;
92
93
  const [filters = []] = (0, component_ui_component_filters_component_filter_context_1.useComponentFilters)() || [];
93
94
  const filtersExceptEnv = filters.filter((filter) => filter.id !== exports.EnvsFilter.id);
94
- const filteredComponents = (0, component_ui_component_filters_component_filter_context_1.runAllFilters)(filtersExceptEnv, { components, lanes });
95
+ const filteredComponents = (0, react_1.useMemo)(() => (0, component_ui_component_filters_component_filter_context_1.runAllFilters)(filtersExceptEnv, { components, lanes }), [filtersExceptEnv, (_a = lanes === null || lanes === void 0 ? void 0 : lanes.viewedLane) === null || _a === void 0 ? void 0 : _a.id.toString()]);
95
96
  const envsFilterState = deriveEnvsFilterState(filteredComponents);
96
97
  const filterContext = (0, component_ui_component_filters_component_filter_context_1.useComponentFilter)(exports.EnvsFilter.id, envsFilterState);
97
- if (!filterContext)
98
- return null;
99
98
  const envs = envsFilterState.envsState;
100
- const [currentFilter, updateFilter] = filterContext;
99
+ const [currentFilter, updateFilter] = filterContext || [];
100
+ /**
101
+ * this will not work if other filters in a single re-render
102
+ * result in the same number of components with different ids
103
+ */
104
+ (0, react_1.useEffect)(() => {
105
+ updateFilter === null || updateFilter === void 0 ? void 0 : updateFilter((currentState) => {
106
+ currentState.state = envsFilterState;
107
+ return currentState;
108
+ });
109
+ }, [filteredComponents.length, (_b = lanes === null || lanes === void 0 ? void 0 : lanes.viewedLane) === null || _b === void 0 ? void 0 : _b.id.toString()]);
101
110
  const selectList = [];
102
111
  envs.forEach((state) => {
103
112
  var _a;
@@ -105,13 +114,13 @@ function envsFilter({ components, className, lanes }) {
105
114
  value: state.id,
106
115
  icon: state.icon,
107
116
  description: state.description,
108
- checked: !!((_a = currentFilter.state.envsState.get(state.id)) === null || _a === void 0 ? void 0 : _a.active),
117
+ checked: !!((_a = currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.state.envsState.get(state.id)) === null || _a === void 0 ? void 0 : _a.active),
109
118
  element: react_1.default.createElement(EnvsDropdownItem, Object.assign({}, state)),
110
119
  });
111
120
  });
112
121
  const onCheck = (value, e) => {
113
122
  const checked = e.target.checked;
114
- updateFilter((currentState) => {
123
+ updateFilter === null || updateFilter === void 0 ? void 0 : updateFilter((currentState) => {
115
124
  if (checked && !currentState.state.dropdownState) {
116
125
  currentState.state.dropdownState = true;
117
126
  }
@@ -123,7 +132,7 @@ function envsFilter({ components, className, lanes }) {
123
132
  });
124
133
  };
125
134
  const onClear = () => {
126
- updateFilter((currentState) => {
135
+ updateFilter === null || updateFilter === void 0 ? void 0 : updateFilter((currentState) => {
127
136
  currentState.state.envsState.forEach((value, key) => {
128
137
  currentState.state.envsState.set(key, Object.assign(Object.assign({}, value), { active: false }));
129
138
  });
@@ -131,19 +140,19 @@ function envsFilter({ components, className, lanes }) {
131
140
  });
132
141
  };
133
142
  const onSubmit = () => {
134
- updateFilter((currentState) => {
143
+ updateFilter === null || updateFilter === void 0 ? void 0 : updateFilter((currentState) => {
135
144
  currentState.state.dropdownState = false;
136
145
  return currentState;
137
146
  });
138
147
  };
139
148
  const onDropdownToggled = (event, open) => {
140
- updateFilter((currentState) => {
149
+ updateFilter === null || updateFilter === void 0 ? void 0 : updateFilter((currentState) => {
141
150
  currentState.state.dropdownState = open;
142
151
  return currentState;
143
152
  });
144
153
  };
145
154
  return (react_1.default.createElement("div", { className: (0, classnames_1.default)(envs_filter_module_scss_1.default.envsFilterContainer, className) },
146
- react_1.default.createElement(design_inputs_selectors_multi_select_1.MultiSelect, { itemsList: selectList, placeholder: react_1.default.createElement(EnvsPlaceholder, null), onSubmit: onSubmit, onCheck: onCheck, onClear: onClear, onChange: onDropdownToggled, open: currentFilter.state.dropdownState, dropdownBorder: false, className: envs_filter_module_scss_1.default.envFilterDropdownContainer, dropClass: envs_filter_module_scss_1.default.envFilterDropdown })));
155
+ react_1.default.createElement(design_inputs_selectors_multi_select_1.MultiSelect, { itemsList: selectList, placeholder: react_1.default.createElement(EnvsPlaceholder, null), onSubmit: onSubmit, onCheck: onCheck, onClear: onClear, onChange: onDropdownToggled, open: !!(currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.state.dropdownState), dropdownBorder: false, className: envs_filter_module_scss_1.default.envFilterDropdownContainer, dropClass: envs_filter_module_scss_1.default.envFilterDropdown })));
147
156
  }
148
157
  function EnvsPlaceholder() {
149
158
  return (react_1.default.createElement("div", { className: envs_filter_module_scss_1.default.filterIcon },
@@ -1 +1 @@
1
- {"version":3,"file":"envs-filter.js","sourceRoot":"","sources":["../envs-filter.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"envs-filter.js","sourceRoot":"","sources":["../envs-filter.tsx"],"names":[],"mappings":"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"}
package/envs-filter.tsx CHANGED
@@ -1,4 +1,4 @@
1
- import React, { useMemo } from 'react';
1
+ import React, { useMemo, useEffect } from 'react';
2
2
  import { MultiSelect, ItemType } from '@teambit/design.inputs.selectors.multi-select';
3
3
  import { ComponentID, ComponentModel } from '@teambit/component';
4
4
  import { ComponentUrl } from '@teambit/component.modules.component-url';
@@ -13,6 +13,7 @@ import {
13
13
  useComponentFilters,
14
14
  runAllFilters,
15
15
  } from '@teambit/component.ui.component-filters.component-filter-context';
16
+
16
17
  import styles from './envs-filter.module.scss';
17
18
 
18
19
  type EnvFilterEnvState = {
@@ -94,16 +95,29 @@ const deriveEnvsFilterState = (components: ComponentModel[]) => {
94
95
  function envsFilter({ components, className, lanes }: ComponentFilterRenderProps) {
95
96
  const [filters = []] = useComponentFilters() || [];
96
97
  const filtersExceptEnv = filters.filter((filter) => filter.id !== EnvsFilter.id);
97
- const filteredComponents = runAllFilters(filtersExceptEnv, { components, lanes });
98
+ const filteredComponents = useMemo(
99
+ () => runAllFilters(filtersExceptEnv, { components, lanes }),
100
+ [filtersExceptEnv, lanes?.viewedLane?.id.toString()]
101
+ );
98
102
 
99
103
  const envsFilterState = deriveEnvsFilterState(filteredComponents);
100
- const filterContext = useComponentFilter(EnvsFilter.id, envsFilterState);
101
104
 
102
- if (!filterContext) return null;
105
+ const filterContext = useComponentFilter(EnvsFilter.id, envsFilterState);
103
106
 
104
107
  const envs = envsFilterState.envsState;
105
108
 
106
- const [currentFilter, updateFilter] = filterContext;
109
+ const [currentFilter, updateFilter] = filterContext || [];
110
+
111
+ /**
112
+ * this will not work if other filters in a single re-render
113
+ * result in the same number of components with different ids
114
+ */
115
+ useEffect(() => {
116
+ updateFilter?.((currentState) => {
117
+ currentState.state = envsFilterState;
118
+ return currentState;
119
+ });
120
+ }, [filteredComponents.length, lanes?.viewedLane?.id.toString()]);
107
121
 
108
122
  const selectList: ItemType[] = [];
109
123
 
@@ -112,7 +126,7 @@ function envsFilter({ components, className, lanes }: ComponentFilterRenderProps
112
126
  value: state.id,
113
127
  icon: state.icon,
114
128
  description: state.description,
115
- checked: !!currentFilter.state.envsState.get(state.id)?.active,
129
+ checked: !!currentFilter?.state.envsState.get(state.id)?.active,
116
130
  element: <EnvsDropdownItem {...state} />,
117
131
  });
118
132
  });
@@ -120,7 +134,7 @@ function envsFilter({ components, className, lanes }: ComponentFilterRenderProps
120
134
  const onCheck = (value: string, e: React.ChangeEvent<HTMLInputElement>) => {
121
135
  const checked = e.target.checked;
122
136
 
123
- updateFilter((currentState) => {
137
+ updateFilter?.((currentState) => {
124
138
  if (checked && !currentState.state.dropdownState) {
125
139
  currentState.state.dropdownState = true;
126
140
  }
@@ -135,7 +149,7 @@ function envsFilter({ components, className, lanes }: ComponentFilterRenderProps
135
149
  };
136
150
 
137
151
  const onClear = () => {
138
- updateFilter((currentState) => {
152
+ updateFilter?.((currentState) => {
139
153
  currentState.state.envsState.forEach((value, key) => {
140
154
  currentState.state.envsState.set(key, { ...value, active: false });
141
155
  });
@@ -144,14 +158,14 @@ function envsFilter({ components, className, lanes }: ComponentFilterRenderProps
144
158
  };
145
159
 
146
160
  const onSubmit = () => {
147
- updateFilter((currentState) => {
161
+ updateFilter?.((currentState) => {
148
162
  currentState.state.dropdownState = false;
149
163
  return currentState;
150
164
  });
151
165
  };
152
166
 
153
167
  const onDropdownToggled = (event, open) => {
154
- updateFilter((currentState) => {
168
+ updateFilter?.((currentState) => {
155
169
  currentState.state.dropdownState = open;
156
170
  return currentState;
157
171
  });
@@ -166,7 +180,7 @@ function envsFilter({ components, className, lanes }: ComponentFilterRenderProps
166
180
  onCheck={onCheck}
167
181
  onClear={onClear}
168
182
  onChange={onDropdownToggled}
169
- open={currentFilter.state.dropdownState}
183
+ open={!!currentFilter?.state.dropdownState}
170
184
  dropdownBorder={false}
171
185
  className={styles.envFilterDropdownContainer}
172
186
  dropClass={styles.envFilterDropdown}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/component.ui.component-filters.env-filter",
3
- "version": "0.0.26",
3
+ "version": "0.0.28",
4
4
  "homepage": "https://bit.dev/teambit/component/ui/component-filters/env-filter",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "ui/component-filters/env-filter",
9
- "version": "0.0.26"
9
+ "version": "0.0.28"
10
10
  },
11
11
  "dependencies": {
12
12
  "classnames": "2.2.6",
@@ -15,7 +15,7 @@
15
15
  "@teambit/design.inputs.selectors.multi-select": "0.0.20",
16
16
  "@teambit/ui-foundation.ui.constants.z-indexes": "0.0.494",
17
17
  "@teambit/component.modules.component-url": "0.0.141",
18
- "@teambit/component.ui.component-filters.component-filter-context": "0.0.20",
18
+ "@teambit/component.ui.component-filters.component-filter-context": "0.0.22",
19
19
  "@teambit/design.ui.styles.ellipsis": "0.0.353",
20
20
  "@teambit/design.ui.tooltip": "0.0.358"
21
21
  },