@etsoo/materialui 1.3.72 → 1.3.73

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/lib/SelectEx.js CHANGED
@@ -32,11 +32,14 @@ export function SelectEx(props) {
32
32
  }
33
33
  onItemChange(option, userAction);
34
34
  };
35
- const setOptionsAdd = (options) => {
35
+ // Local value
36
+ const v = defaultValue ?? value;
37
+ const valueSource = React.useMemo(() => (multiple ? (v ? (Array.isArray(v) ? v : [v]) : []) : v ?? ""), [multiple, v]);
38
+ const setOptionsAdd = React.useCallback((options) => {
36
39
  setOptions(options);
37
40
  if (valueSource != null)
38
41
  doItemChange(options, valueSource, false);
39
- };
42
+ }, [valueSource]);
40
43
  // When options change
41
44
  // [options] will cause infinite loop
42
45
  const propertyWay = loadData == null;
@@ -44,10 +47,7 @@ export function SelectEx(props) {
44
47
  if (options == null || !propertyWay)
45
48
  return;
46
49
  setOptionsAdd(options);
47
- }, [options, propertyWay]);
48
- // Local value
49
- const v = defaultValue ?? value;
50
- const valueSource = React.useMemo(() => (multiple ? (v ? (Array.isArray(v) ? v : [v]) : []) : v ?? ""), [multiple, v]);
50
+ }, [options, propertyWay, setOptionsAdd]);
51
51
  // Value state
52
52
  const [valueState, setValueStateBase] = React.useState(valueSource);
53
53
  const valueRef = React.useRef();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etsoo/materialui",
3
- "version": "1.3.72",
3
+ "version": "1.3.73",
4
4
  "description": "TypeScript Material-UI Implementation",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
package/src/SelectEx.tsx CHANGED
@@ -171,10 +171,20 @@ export function SelectEx<
171
171
  onItemChange(option, userAction);
172
172
  };
173
173
 
174
- const setOptionsAdd = (options: readonly T[]) => {
175
- setOptions(options);
176
- if (valueSource != null) doItemChange(options, valueSource, false);
177
- };
174
+ // Local value
175
+ const v = defaultValue ?? value;
176
+ const valueSource = React.useMemo(
177
+ () => (multiple ? (v ? (Array.isArray(v) ? v : [v]) : []) : v ?? ""),
178
+ [multiple, v]
179
+ );
180
+
181
+ const setOptionsAdd = React.useCallback(
182
+ (options: readonly T[]) => {
183
+ setOptions(options);
184
+ if (valueSource != null) doItemChange(options, valueSource, false);
185
+ },
186
+ [valueSource]
187
+ );
178
188
 
179
189
  // When options change
180
190
  // [options] will cause infinite loop
@@ -182,14 +192,7 @@ export function SelectEx<
182
192
  React.useEffect(() => {
183
193
  if (options == null || !propertyWay) return;
184
194
  setOptionsAdd(options);
185
- }, [options, propertyWay]);
186
-
187
- // Local value
188
- const v = defaultValue ?? value;
189
- const valueSource = React.useMemo(
190
- () => (multiple ? (v ? (Array.isArray(v) ? v : [v]) : []) : v ?? ""),
191
- [multiple, v]
192
- );
195
+ }, [options, propertyWay, setOptionsAdd]);
193
196
 
194
197
  // Value state
195
198
  const [valueState, setValueStateBase] = React.useState<unknown>(valueSource);