@acusti/dropdown 0.30.0 → 0.32.0

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.
@@ -7,6 +7,8 @@ export type Item = {
7
7
  value: string;
8
8
  };
9
9
  export type Props = {
10
+ /** Boolean indicating if the user can submit a value not already in the dropdown */
11
+ allowCreate?: boolean;
10
12
  /** Boolean indicating if the user can submit an empty value (i.e. clear the value); defaults to true */
11
13
  allowEmpty?: boolean;
12
14
  /** Can take a single React element (e.g. ReactChild) or exactly two renderable children */
@@ -38,5 +40,5 @@ export type Props = {
38
40
  */
39
41
  value?: string;
40
42
  };
41
- export default function Dropdown({ allowEmpty, children, className, disabled, hasItems, isOpenOnMount, isSearchable, keepOpenOnSubmit, label, name, onClick, onClose, onMouseDown, onMouseUp, onOpen, onSubmitItem, placeholder, tabIndex, value, }: Props): JSX.Element;
43
+ export default function Dropdown({ allowCreate, allowEmpty, children, className, disabled, hasItems, isOpenOnMount, isSearchable, keepOpenOnSubmit, label, name, onClick, onClose, onMouseDown, onMouseUp, onOpen, onSubmitItem, placeholder, tabIndex, value, }: Props): JSX.Element;
42
44
  export {};
package/dist/Dropdown.js CHANGED
@@ -9,7 +9,8 @@ import { getActiveItemElement, getItemElements, ITEM_SELECTOR, setActiveItem, }
9
9
  const { Children, Fragment, useCallback, useEffect, useMemo, useRef, useState } = React;
10
10
  const noop = () => { };
11
11
  const CHILDREN_ERROR = '@acusti/dropdown requires either 1 child (the dropdown body) or 2 children: the dropdown trigger and the dropdown body.';
12
- export default function Dropdown({ allowEmpty = true, children, className, disabled, hasItems = true, isOpenOnMount, isSearchable, keepOpenOnSubmit = !hasItems, label, name, onClick, onClose, onMouseDown, onMouseUp, onOpen, onSubmitItem, placeholder, tabIndex, value, }) {
12
+ const TEXT_INPUT_SELECTOR = 'input:not([type=radio]):not([type=checkbox]):not([type=range]),textarea';
13
+ export default function Dropdown({ allowCreate, allowEmpty = true, children, className, disabled, hasItems = true, isOpenOnMount, isSearchable, keepOpenOnSubmit = !hasItems, label, name, onClick, onClose, onMouseDown, onMouseUp, onOpen, onSubmitItem, placeholder, tabIndex, value, }) {
13
14
  const childrenCount = Children.count(children);
14
15
  if (childrenCount !== 1 && childrenCount !== 2) {
15
16
  if (childrenCount === 0) {
@@ -34,33 +35,33 @@ export default function Dropdown({ allowEmpty = true, children, className, disab
34
35
  const enteredCharactersRef = useRef('');
35
36
  const mouseDownPositionRef = useRef(null);
36
37
  const outOfBounds = useIsOutOfBounds(dropdownBodyElement);
38
+ const allowCreateRef = useRef(allowCreate);
37
39
  const allowEmptyRef = useRef(allowEmpty);
38
40
  const hasItemsRef = useRef(hasItems);
39
41
  const isOpenRef = useRef(isOpen);
40
42
  const isOpeningRef = useRef(isOpening);
41
- const isTriggerFromPropsRef = useRef(isOpening);
42
43
  const keepOpenOnSubmitRef = useRef(keepOpenOnSubmit);
43
44
  const onCloseRef = useRef(onClose);
44
45
  const onOpenRef = useRef(onOpen);
45
46
  const onSubmitItemRef = useRef(onSubmitItem);
46
47
  const valueRef = useRef(value);
47
48
  useEffect(() => {
49
+ allowCreateRef.current = allowCreate;
48
50
  allowEmptyRef.current = allowEmpty;
49
51
  hasItemsRef.current = hasItems;
50
52
  isOpenRef.current = isOpen;
51
53
  isOpeningRef.current = isOpening;
52
- isTriggerFromPropsRef.current = isTriggerFromProps;
53
54
  keepOpenOnSubmitRef.current = keepOpenOnSubmit;
54
55
  onCloseRef.current = onClose;
55
56
  onOpenRef.current = onOpen;
56
57
  onSubmitItemRef.current = onSubmitItem;
57
58
  valueRef.current = value;
58
59
  }, [
60
+ allowCreate,
59
61
  allowEmpty,
60
62
  hasItems,
61
63
  isOpen,
62
64
  isOpening,
63
- isTriggerFromProps,
64
65
  keepOpenOnSubmit,
65
66
  onClose,
66
67
  onOpen,
@@ -109,7 +110,7 @@ export default function Dropdown({ allowEmpty = true, children, className, disab
109
110
  if (!hasItemsRef.current)
110
111
  return;
111
112
  const element = getActiveItemElement(dropdownElementRef.current);
112
- if (!element) {
113
+ if (!element && !allowCreateRef.current) {
113
114
  // If not allowEmpty, don’t allow submitting an empty item
114
115
  if (!allowEmptyRef.current)
115
116
  return;
@@ -117,9 +118,14 @@ export default function Dropdown({ allowEmpty = true, children, className, disab
117
118
  if ((_a = inputElementRef.current) === null || _a === void 0 ? void 0 : _a.value)
118
119
  return;
119
120
  }
120
- const label = (element === null || element === void 0 ? void 0 : element.innerText) || '';
121
+ let label = (element === null || element === void 0 ? void 0 : element.innerText) || '';
121
122
  if (inputElementRef.current) {
122
- inputElementRef.current.value = label;
123
+ if (!element) {
124
+ label = inputElementRef.current.value;
125
+ }
126
+ else {
127
+ inputElementRef.current.value = label;
128
+ }
123
129
  if (inputElementRef.current ===
124
130
  inputElementRef.current.ownerDocument.activeElement) {
125
131
  inputElementRef.current.blur();
@@ -264,9 +270,9 @@ export default function Dropdown({ allowEmpty = true, children, className, disab
264
270
  }
265
271
  setActiveItem({
266
272
  dropdownElement,
267
- // If input element came from props, only override the input’s value
268
- // with an exact text match so user can enter a value not in items
269
- isExactMatch: isTriggerFromPropsRef.current,
273
+ // If props.allowCreate, only override the input’s value with an
274
+ // exact text match so user can enter a value not in items
275
+ isExactMatch: allowCreateRef.current,
270
276
  text: enteredCharactersRef.current,
271
277
  });
272
278
  if (clearEnteredCharactersTimerRef.current) {
@@ -331,9 +337,15 @@ export default function Dropdown({ allowEmpty = true, children, className, disab
331
337
  }
332
338
  const { ownerDocument } = ref;
333
339
  let inputElement = inputElementRef.current;
334
- // Check if trigger from props is an input or textarea element
340
+ // Check if trigger from props is a textual input or textarea element
335
341
  if (isTriggerFromProps && !inputElement && ref.firstElementChild) {
336
- inputElement = ref.firstElementChild.querySelector('input:not([type=radio]):not([type=checkbox]):not([type=range]),textarea');
342
+ if (ref.firstElementChild.matches(TEXT_INPUT_SELECTOR)) {
343
+ inputElement = ref.firstElementChild;
344
+ }
345
+ else {
346
+ inputElement =
347
+ ref.firstElementChild.querySelector(TEXT_INPUT_SELECTOR);
348
+ }
337
349
  inputElementRef.current = inputElement;
338
350
  }
339
351
  const handleGlobalMouseDown = ({ target }) => {
@@ -397,14 +409,18 @@ export default function Dropdown({ allowEmpty = true, children, className, disab
397
409
  const input = event.target;
398
410
  const isDeleting = enteredCharactersRef.current.length > input.value.length;
399
411
  enteredCharactersRef.current = input.value;
400
- // Don’t set a new active item if user is deleting text unless text is now empty
401
- if (isDeleting && input.value.length)
412
+ // When deleting text, if there’s already an active item and
413
+ // input isn’t empty, preserve the active item, else update it
414
+ if (isDeleting &&
415
+ input.value.length &&
416
+ getActiveItemElement(dropdownElement)) {
402
417
  return;
418
+ }
403
419
  setActiveItem({
404
420
  dropdownElement,
405
- // If input element came from props, only override the input’s value
406
- // with an exact text match so user can enter a value not in items
407
- isExactMatch: isTriggerFromPropsRef.current,
421
+ // If props.allowCreate, only override the input’s value with an
422
+ // exact text match so user can enter a value not in items
423
+ isExactMatch: allowCreateRef.current,
408
424
  text: enteredCharactersRef.current,
409
425
  });
410
426
  };
@@ -14,6 +14,11 @@ export type Item = {|
14
14
  value: string,
15
15
  |};
16
16
  export type Props = {|
17
+ /**
18
+ * Boolean indicating if the user can submit a value not already in the dropdown
19
+ */
20
+ allowCreate?: boolean,
21
+
17
22
  /**
18
23
  * Boolean indicating if the user can submit an empty value (i.e. clear the value); defaults to true
19
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.js","sourceRoot":"","sources":["../src/Dropdown.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Dropdown.js","sourceRoot":"","sources":["../src/Dropdown.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acusti/dropdown",
3
- "version": "0.30.0",
3
+ "version": "0.32.0",
4
4
  "description": "React component that renders a dropdown with a trigger and supports searching, keyboard access, and more",
5
5
  "keywords": [
6
6
  "react",
package/src/Dropdown.tsx CHANGED
@@ -35,6 +35,8 @@ export type Item = {
35
35
  };
36
36
 
37
37
  export type Props = {
38
+ /** Boolean indicating if the user can submit a value not already in the dropdown */
39
+ allowCreate?: boolean;
38
40
  /** Boolean indicating if the user can submit an empty value (i.e. clear the value); defaults to true */
39
41
  allowEmpty?: boolean;
40
42
  /** Can take a single React element (e.g. ReactChild) or exactly two renderable children */
@@ -77,8 +79,11 @@ const noop = () => {};
77
79
 
78
80
  const CHILDREN_ERROR =
79
81
  '@acusti/dropdown requires either 1 child (the dropdown body) or 2 children: the dropdown trigger and the dropdown body.';
82
+ const TEXT_INPUT_SELECTOR =
83
+ 'input:not([type=radio]):not([type=checkbox]):not([type=range]),textarea';
80
84
 
81
85
  export default function Dropdown({
86
+ allowCreate,
82
87
  allowEmpty = true,
83
88
  children,
84
89
  className,
@@ -128,11 +133,11 @@ export default function Dropdown({
128
133
  const mouseDownPositionRef = useRef<MousePosition | null>(null);
129
134
  const outOfBounds = useIsOutOfBounds(dropdownBodyElement);
130
135
 
136
+ const allowCreateRef = useRef(allowCreate);
131
137
  const allowEmptyRef = useRef(allowEmpty);
132
138
  const hasItemsRef = useRef(hasItems);
133
139
  const isOpenRef = useRef(isOpen);
134
140
  const isOpeningRef = useRef(isOpening);
135
- const isTriggerFromPropsRef = useRef(isOpening);
136
141
  const keepOpenOnSubmitRef = useRef(keepOpenOnSubmit);
137
142
  const onCloseRef = useRef(onClose);
138
143
  const onOpenRef = useRef(onOpen);
@@ -140,22 +145,22 @@ export default function Dropdown({
140
145
  const valueRef = useRef(value);
141
146
 
142
147
  useEffect(() => {
148
+ allowCreateRef.current = allowCreate;
143
149
  allowEmptyRef.current = allowEmpty;
144
150
  hasItemsRef.current = hasItems;
145
151
  isOpenRef.current = isOpen;
146
152
  isOpeningRef.current = isOpening;
147
- isTriggerFromPropsRef.current = isTriggerFromProps;
148
153
  keepOpenOnSubmitRef.current = keepOpenOnSubmit;
149
154
  onCloseRef.current = onClose;
150
155
  onOpenRef.current = onOpen;
151
156
  onSubmitItemRef.current = onSubmitItem;
152
157
  valueRef.current = value;
153
158
  }, [
159
+ allowCreate,
154
160
  allowEmpty,
155
161
  hasItems,
156
162
  isOpen,
157
163
  isOpening,
158
- isTriggerFromProps,
159
164
  keepOpenOnSubmit,
160
165
  onClose,
161
166
  onOpen,
@@ -213,16 +218,21 @@ export default function Dropdown({
213
218
  if (!hasItemsRef.current) return;
214
219
 
215
220
  const element = getActiveItemElement(dropdownElementRef.current);
216
- if (!element) {
221
+ if (!element && !allowCreateRef.current) {
217
222
  // If not allowEmpty, don’t allow submitting an empty item
218
223
  if (!allowEmptyRef.current) return;
219
224
  // If we have an input element as trigger & the user didn’t clear the text, do nothing
220
225
  if (inputElementRef.current?.value) return;
221
226
  }
222
227
 
223
- const label = element?.innerText || '';
228
+ let label = element?.innerText || '';
224
229
  if (inputElementRef.current) {
225
- inputElementRef.current.value = label;
230
+ if (!element) {
231
+ label = inputElementRef.current.value;
232
+ } else {
233
+ inputElementRef.current.value = label;
234
+ }
235
+
226
236
  if (
227
237
  inputElementRef.current ===
228
238
  inputElementRef.current.ownerDocument.activeElement
@@ -398,9 +408,9 @@ export default function Dropdown({
398
408
 
399
409
  setActiveItem({
400
410
  dropdownElement,
401
- // If input element came from props, only override the input’s value
402
- // with an exact text match so user can enter a value not in items
403
- isExactMatch: isTriggerFromPropsRef.current,
411
+ // If props.allowCreate, only override the input’s value with an
412
+ // exact text match so user can enter a value not in items
413
+ isExactMatch: allowCreateRef.current,
404
414
  text: enteredCharactersRef.current,
405
415
  });
406
416
 
@@ -478,11 +488,14 @@ export default function Dropdown({
478
488
 
479
489
  const { ownerDocument } = ref;
480
490
  let inputElement = inputElementRef.current;
481
- // Check if trigger from props is an input or textarea element
491
+ // Check if trigger from props is a textual input or textarea element
482
492
  if (isTriggerFromProps && !inputElement && ref.firstElementChild) {
483
- inputElement = ref.firstElementChild.querySelector(
484
- 'input:not([type=radio]):not([type=checkbox]):not([type=range]),textarea',
485
- );
493
+ if (ref.firstElementChild.matches(TEXT_INPUT_SELECTOR)) {
494
+ inputElement = ref.firstElementChild as HTMLInputElement;
495
+ } else {
496
+ inputElement =
497
+ ref.firstElementChild.querySelector(TEXT_INPUT_SELECTOR);
498
+ }
486
499
  inputElementRef.current = inputElement;
487
500
  }
488
501
 
@@ -559,14 +572,21 @@ export default function Dropdown({
559
572
  const isDeleting =
560
573
  enteredCharactersRef.current.length > input.value.length;
561
574
  enteredCharactersRef.current = input.value;
562
- // Don’t set a new active item if user is deleting text unless text is now empty
563
- if (isDeleting && input.value.length) return;
575
+ // When deleting text, if there’s already an active item and
576
+ // input isn’t empty, preserve the active item, else update it
577
+ if (
578
+ isDeleting &&
579
+ input.value.length &&
580
+ getActiveItemElement(dropdownElement)
581
+ ) {
582
+ return;
583
+ }
564
584
 
565
585
  setActiveItem({
566
586
  dropdownElement,
567
- // If input element came from props, only override the input’s value
568
- // with an exact text match so user can enter a value not in items
569
- isExactMatch: isTriggerFromPropsRef.current,
587
+ // If props.allowCreate, only override the input’s value with an
588
+ // exact text match so user can enter a value not in items
589
+ isExactMatch: allowCreateRef.current,
570
590
  text: enteredCharactersRef.current,
571
591
  });
572
592
  };