@cashub/ui 0.18.2 → 0.18.3

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/select/Select.js +47 -36
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cashub/ui",
3
- "version": "0.18.2",
3
+ "version": "0.18.3",
4
4
  "private": false,
5
5
  "author": "CASHUB Team",
6
6
  "description": "CASHUB UI components library",
package/select/Select.js CHANGED
@@ -97,7 +97,6 @@ var Select = function Select(_ref) {
97
97
  fillReverse = _ref.fillReverse,
98
98
  onBlur = _ref.onBlur,
99
99
  onSearch = _ref.onSearch;
100
- console.log('selected', selected);
101
100
 
102
101
  var _useTranslation = (0, _reactI18next.useTranslation)(),
103
102
  t = _useTranslation.t;
@@ -201,13 +200,15 @@ var Select = function Select(_ref) {
201
200
  return '';
202
201
  }, [selected]);
203
202
  var selectedAllOptions = (0, _react.useMemo)(function () {
204
- var selectedAllOptions = _toConsumableArray(parsedSelected);
205
-
206
203
  if (multiple && enableSelectAll && parsedSelected.length + 1 === newOptions.length) {
207
- selectedAllOptions.unshift(allOptionId);
204
+ var _selectedAllOptions = _toConsumableArray(parsedSelected);
205
+
206
+ _selectedAllOptions.unshift(allOptionId);
207
+
208
+ return _selectedAllOptions;
208
209
  }
209
210
 
210
- return selectedAllOptions;
211
+ return parsedSelected;
211
212
  }, [multiple, enableSelectAll, newOptions.length, parsedSelected, allOptionId]); // set focused option
212
213
 
213
214
  var handleFocusItem = (0, _react.useCallback)(function (element) {
@@ -274,56 +275,66 @@ var Select = function Select(_ref) {
274
275
  if (disabled === true) return; // 選取選項
275
276
  // 點選 all 全選
276
277
 
277
- if (value.toString() === allOptionId && selectedAllOptions.length < newOptions.length) {
278
- for (var index = 1; index < newOptions.length; index += 1) {
279
- onSelect(newOptions[index].id);
278
+ if (multiple) {
279
+ if (value.toString() === allOptionId && selectedAllOptions.length < newOptions.length) {
280
+ for (var index = 1; index < newOptions.length; index += 1) {
281
+ onSelect(newOptions[index].id);
282
+ }
280
283
  }
281
- }
282
284
 
283
- if (value.toString() !== allOptionId && !selectedAllOptions.includes(value.toString())) {
284
- // 選取一個選項,變成全選
285
- if (selectedAllOptions.length + 2 === newOptions.length) {
286
- onSelect(value);
287
- } else {
288
- // 選取特定選項
289
- onSelect(value);
290
- }
291
- } // 刪除選項
292
- // 點選 all 刪除全選
285
+ if (value.toString() !== allOptionId && !selectedAllOptions.includes(value.toString())) {
286
+ // 選取一個選項,變成全選
287
+ if (selectedAllOptions.length + 2 === newOptions.length) {
288
+ onSelect(value);
289
+ } else {
290
+ // 選取特定選項
291
+ onSelect(value);
292
+ }
293
+ } // 刪除選項
294
+ // 點選 all 刪除全選
293
295
 
294
296
 
295
- if (value.toString() === allOptionId && selectedAllOptions.length === newOptions.length) {
296
- for (var _index = 0; _index < newOptions.length; _index += 1) {
297
- onDeselect(newOptions[_index].id);
297
+ if (value.toString() === allOptionId && selectedAllOptions.length === newOptions.length) {
298
+ for (var _index = 0; _index < newOptions.length; _index += 1) {
299
+ onDeselect(newOptions[_index].id);
300
+ }
298
301
  }
299
- }
300
302
 
301
- if (value.toString() !== allOptionId && selectedAllOptions.includes(value.toString())) {
302
- // 原本是 all 全選後來刪除其中一個選項
303
- if (selectedAllOptions.length === newOptions.length) {
304
- onDeselect(value);
305
- } else {
306
- // 刪除特定選項
307
- onDeselect(value);
303
+ if (value.toString() !== allOptionId && selectedAllOptions.includes(value.toString())) {
304
+ // 原本是 all 全選後來刪除其中一個選項
305
+ if (selectedAllOptions.length === newOptions.length) {
306
+ onDeselect(value);
307
+ } else {
308
+ // 刪除特定選項
309
+ onDeselect(value);
310
+ }
308
311
  }
312
+
313
+ setDisplay(true);
314
+ } else {
315
+ onSelect(value);
316
+ setDisplay(false);
309
317
  }
310
318
 
311
319
  comboboxElement.focus();
312
320
  setSearch('');
313
- setDisplay(true);
314
- }, [disabled, onSelect, comboboxElement, selectedAllOptions, onDeselect, newOptions, allOptionId]);
321
+ }, [disabled, onSelect, comboboxElement, selectedAllOptions, onDeselect, newOptions, allOptionId, multiple]);
315
322
  var handleOnDeselect = (0, _react.useCallback)(function (event, value) {
316
323
  event.stopPropagation();
317
324
  if (disabled === true) return;
318
325
 
319
- if (value.toString() === allOptionId) {
320
- for (var index = 0; index < optionList.length; index += 1) {
321
- onDeselect(optionList[index].id);
326
+ if (multiple) {
327
+ if (value.toString() === allOptionId) {
328
+ for (var index = 0; index < optionList.length; index += 1) {
329
+ onDeselect(optionList[index].id);
330
+ }
331
+ } else {
332
+ onDeselect(value);
322
333
  }
323
334
  } else {
324
335
  onDeselect(value);
325
336
  }
326
- }, [disabled, onDeselect, optionList, allOptionId]); // list all selected option
337
+ }, [disabled, onDeselect, optionList, allOptionId, multiple]); // list all selected option
327
338
 
328
339
  var selectedItem = (0, _react.useMemo)(function () {
329
340
  if (selectedOptions.length > 0) {