@pushwoosh/dumb-components 1.1.177 → 1.1.178
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/Combobox/Combobox.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useCallback, useId, useMemo, useRef, useState } from 'react';
|
|
3
|
-
import { DEFAULT_DEBOUNCE_MS, FieldInput, FieldShell, defaultGetKey, resolveDropdownText, useActiveIndex, useDropdownItems, useFieldOpenEffects, useListNavigation, useShellMouseDown } from '../shared/dropdownField';
|
|
3
|
+
import { DEFAULT_DEBOUNCE_MS, FieldInput, FieldShell, defaultGetKey, resolveDropdownText, useActiveIndex, useDropdownItems, useFieldOpenEffects, useListNavigation, useShellMouseDown, useToggleOpen } from '../shared/dropdownField';
|
|
4
4
|
function FreeCombobox({
|
|
5
5
|
items,
|
|
6
6
|
loadItems,
|
|
@@ -228,17 +228,7 @@ function SelectCombobox({
|
|
|
228
228
|
onReachEnd: loadMore
|
|
229
229
|
});
|
|
230
230
|
const onShellMouseDown = useShellMouseDown(inputRef, isOpen, open);
|
|
231
|
-
const toggleOpen =
|
|
232
|
-
if (isOpen) {
|
|
233
|
-
var _inputRef$current3;
|
|
234
|
-
close();
|
|
235
|
-
(_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 || _inputRef$current3.blur();
|
|
236
|
-
} else {
|
|
237
|
-
var _inputRef$current4;
|
|
238
|
-
open();
|
|
239
|
-
(_inputRef$current4 = inputRef.current) === null || _inputRef$current4 === void 0 || _inputRef$current4.focus();
|
|
240
|
-
}
|
|
241
|
-
}, [isOpen, open, close]);
|
|
231
|
+
const toggleOpen = useToggleOpen(inputRef, isOpen, open, close);
|
|
242
232
|
useFieldOpenEffects({
|
|
243
233
|
isOpen,
|
|
244
234
|
open,
|
|
@@ -279,9 +269,9 @@ function SelectCombobox({
|
|
|
279
269
|
showChevron: true,
|
|
280
270
|
onToggle: toggleOpen,
|
|
281
271
|
onClear: () => {
|
|
282
|
-
var _inputRef$
|
|
272
|
+
var _inputRef$current3;
|
|
283
273
|
onChange(null);
|
|
284
|
-
(_inputRef$
|
|
274
|
+
(_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 || _inputRef$current3.focus();
|
|
285
275
|
},
|
|
286
276
|
dropdownItems: dropdownItems,
|
|
287
277
|
emptyText: resolveDropdownText(emptyText, query),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useCallback, useId, useMemo, useRef, useState } from 'react';
|
|
3
3
|
import { Chip } from '../Chip';
|
|
4
|
-
import { DEFAULT_DEBOUNCE_MS, FieldInput, FieldShell, defaultGetKey, resolveDropdownText, useActiveIndex, useDropdownItems, useFieldOpenEffects, useListNavigation, useShellMouseDown } from '../shared/dropdownField';
|
|
4
|
+
import { DEFAULT_DEBOUNCE_MS, FieldInput, FieldShell, defaultGetKey, resolveDropdownText, useActiveIndex, useDropdownItems, useFieldOpenEffects, useListNavigation, useShellMouseDown, useToggleOpen } from '../shared/dropdownField';
|
|
5
5
|
function defaultCanCreate(query, items, getLabel) {
|
|
6
6
|
const trimmed = query.trim();
|
|
7
7
|
if (!trimmed) return false;
|
|
@@ -136,17 +136,7 @@ export function ComboboxMulti({
|
|
|
136
136
|
autoFocus,
|
|
137
137
|
inputRef
|
|
138
138
|
});
|
|
139
|
-
const toggleOpen =
|
|
140
|
-
if (isOpen) {
|
|
141
|
-
var _inputRef$current2;
|
|
142
|
-
close();
|
|
143
|
-
(_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.blur();
|
|
144
|
-
} else {
|
|
145
|
-
var _inputRef$current3;
|
|
146
|
-
open();
|
|
147
|
-
(_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 || _inputRef$current3.focus();
|
|
148
|
-
}
|
|
149
|
-
}, [isOpen, open, close]);
|
|
139
|
+
const toggleOpen = useToggleOpen(inputRef, isOpen, open, close);
|
|
150
140
|
const itemOffset = canCreateNow ? 1 : 0;
|
|
151
141
|
const dropdownItems = useMemo(() => visibleItems.map((item, idx) => {
|
|
152
142
|
const key = getKey(item);
|
package/package.json
CHANGED
|
@@ -8,6 +8,6 @@ export { useDropdownItems } from './useDropdownItems';
|
|
|
8
8
|
export { useActiveIndex } from './useActiveIndex';
|
|
9
9
|
export { useFieldOpenEffects } from './useFieldOpenEffects';
|
|
10
10
|
export { useListNavigation } from './useListNavigation';
|
|
11
|
-
export { defaultGetKey, defaultLabelFilter, resolveDropdownText, useShellMouseDown, } from './shared';
|
|
11
|
+
export { defaultGetKey, defaultLabelFilter, resolveDropdownText, useShellMouseDown, useToggleOpen, } from './shared';
|
|
12
12
|
export { DEFAULT_DEBOUNCE_MS } from './constants';
|
|
13
13
|
export type { ItemState, DropdownItemDescriptor, DropdownText, GetKeyProp, ItemsSource, LoadItems, LoadItemsResult, } from './types';
|
|
@@ -8,5 +8,5 @@ export { useDropdownItems } from './useDropdownItems';
|
|
|
8
8
|
export { useActiveIndex } from './useActiveIndex';
|
|
9
9
|
export { useFieldOpenEffects } from './useFieldOpenEffects';
|
|
10
10
|
export { useListNavigation } from './useListNavigation';
|
|
11
|
-
export { defaultGetKey, defaultLabelFilter, resolveDropdownText, useShellMouseDown } from './shared';
|
|
11
|
+
export { defaultGetKey, defaultLabelFilter, resolveDropdownText, useShellMouseDown, useToggleOpen } from './shared';
|
|
12
12
|
export { DEFAULT_DEBOUNCE_MS } from './constants';
|
|
@@ -11,3 +11,4 @@ export declare function defaultLabelFilter<T>(item: T, query: string, getLabel:
|
|
|
11
11
|
* while letting clicks on the input itself or on inner buttons through.
|
|
12
12
|
*/
|
|
13
13
|
export declare function useShellMouseDown(inputRef: RefObject<HTMLInputElement>, isOpen: boolean, open: () => void): (event: MouseEvent<HTMLDivElement>) => void;
|
|
14
|
+
export declare function useToggleOpen(inputRef: RefObject<HTMLInputElement>, isOpen: boolean, open: () => void, close: () => void): () => void;
|
|
@@ -25,4 +25,17 @@ export function useShellMouseDown(inputRef, isOpen, open) {
|
|
|
25
25
|
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();
|
|
26
26
|
if (!isOpen) open();
|
|
27
27
|
}, [inputRef, isOpen, open]);
|
|
28
|
+
}
|
|
29
|
+
export function useToggleOpen(inputRef, isOpen, open, close) {
|
|
30
|
+
return useCallback(() => {
|
|
31
|
+
if (isOpen) {
|
|
32
|
+
var _inputRef$current2;
|
|
33
|
+
close();
|
|
34
|
+
(_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.blur();
|
|
35
|
+
} else {
|
|
36
|
+
var _inputRef$current3;
|
|
37
|
+
open();
|
|
38
|
+
(_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 || _inputRef$current3.focus();
|
|
39
|
+
}
|
|
40
|
+
}, [inputRef, isOpen, open, close]);
|
|
28
41
|
}
|