@purpurds/autocomplete 5.15.0 → 5.16.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.
- package/dist/LICENSE.txt +3 -3
- package/dist/autocomplete.cjs.js +9 -9
- package/dist/autocomplete.cjs.js.map +1 -1
- package/dist/autocomplete.es.js +89 -86
- package/dist/autocomplete.es.js.map +1 -1
- package/dist/useAutocomplete.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/autocomplete.test.tsx +9 -5
- package/src/useAutocomplete.ts +10 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAutocomplete.d.ts","sourceRoot":"","sources":["../src/useAutocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIxE,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC,GAAG;IACzF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,MAAM,IAAI;IAIrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAInB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAI/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAI3B,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC;IAItE,EAAE,EAAE,MAAM,CAAC;IAIX,YAAY,EAAE,MAAM,CAAC;IAIrB,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAInC,aAAa,CAAC,EAAE,SAAS,CAAC;IAI1B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAIxC,WAAW,CAAC,EAAE,OAAO,CAAC;IAItB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;IAI3C,OAAO,EAAE,CAAC,EAAE,CAAC;IAIb,cAAc,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,mOAgB7C,sBAAsB,CAAC,CAAC,CAAC;;;;;;;;
|
|
1
|
+
{"version":3,"file":"useAutocomplete.d.ts","sourceRoot":"","sources":["../src/useAutocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIxE,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC,GAAG;IACzF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,MAAM,IAAI;IAIrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAInB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAI/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAI3B,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC;IAItE,EAAE,EAAE,MAAM,CAAC;IAIX,YAAY,EAAE,MAAM,CAAC;IAIrB,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAInC,aAAa,CAAC,EAAE,SAAS,CAAC;IAI1B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAIxC,WAAW,CAAC,EAAE,OAAO,CAAC;IAItB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;IAI3C,OAAO,EAAE,CAAC,EAAE,CAAC;IAIb,cAAc,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,mOAgB7C,sBAAsB,CAAC,CAAC,CAAC;;;;;;;;kCAqLW,CAAC,SAAS,MAAM,KAAG,gBAAgB;;CAqDzE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@purpurds/autocomplete",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.16.0",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"main": "./dist/autocomplete.cjs.js",
|
|
6
6
|
"types": "./dist/autocomplete.d.ts",
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
"source": "src/autocomplete.tsx",
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"classnames": "~2.5.0",
|
|
18
|
-
"@purpurds/icon": "5.
|
|
19
|
-
"@purpurds/
|
|
20
|
-
"@purpurds/
|
|
21
|
-
"@purpurds/
|
|
22
|
-
"@purpurds/
|
|
18
|
+
"@purpurds/icon": "5.16.0",
|
|
19
|
+
"@purpurds/text-field": "5.16.0",
|
|
20
|
+
"@purpurds/tokens": "5.16.0",
|
|
21
|
+
"@purpurds/paragraph": "5.16.0",
|
|
22
|
+
"@purpurds/listbox": "5.16.0"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@rushstack/eslint-patch": "~1.10.0",
|
|
@@ -45,10 +45,10 @@
|
|
|
45
45
|
"typescript": "^5.5.4",
|
|
46
46
|
"vite": "5.3.4",
|
|
47
47
|
"vitest": "~1.5.0",
|
|
48
|
-
"@purpurds/button": "5.15.0",
|
|
49
48
|
"@purpurds/component-rig": "1.0.0",
|
|
50
|
-
"@purpurds/icon": "5.
|
|
51
|
-
"@purpurds/
|
|
49
|
+
"@purpurds/icon": "5.16.0",
|
|
50
|
+
"@purpurds/button": "5.16.0",
|
|
51
|
+
"@purpurds/search-field": "5.16.0"
|
|
52
52
|
},
|
|
53
53
|
"scripts": {
|
|
54
54
|
"build:dev": "vite",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { TextField } from "@purpurds/text-field";
|
|
3
3
|
import * as matchers from "@testing-library/jest-dom/matchers";
|
|
4
|
-
import { cleanup, fireEvent, render, screen } from "@testing-library/react";
|
|
4
|
+
import { cleanup, fireEvent, render, screen, waitFor } from "@testing-library/react";
|
|
5
5
|
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
6
6
|
|
|
7
7
|
import { Autocomplete } from "./autocomplete";
|
|
@@ -593,7 +593,7 @@ describe("B2xAutocomplete", () => {
|
|
|
593
593
|
expect(input.value).toEqual("random text");
|
|
594
594
|
});
|
|
595
595
|
|
|
596
|
-
it("should reset input value on blur for combobox with no selected option", () => {
|
|
596
|
+
it("should reset input value on blur for combobox with no selected option", async () => {
|
|
597
597
|
const onSelectMock = vi.fn();
|
|
598
598
|
render(
|
|
599
599
|
<Autocomplete
|
|
@@ -613,10 +613,12 @@ describe("B2xAutocomplete", () => {
|
|
|
613
613
|
fireEvent.change(input, { target: { value: "random text" } });
|
|
614
614
|
expect(input.value).toEqual("random text");
|
|
615
615
|
fireEvent.blur(input);
|
|
616
|
-
|
|
616
|
+
await waitFor(() => {
|
|
617
|
+
expect(input.value).toEqual("");
|
|
618
|
+
});
|
|
617
619
|
});
|
|
618
620
|
|
|
619
|
-
it("should reset input value on blur for combobox with selected option", () => {
|
|
621
|
+
it("should reset input value on blur for combobox with selected option", async () => {
|
|
620
622
|
const onSelectMock = vi.fn();
|
|
621
623
|
render(
|
|
622
624
|
<Autocomplete
|
|
@@ -637,6 +639,8 @@ describe("B2xAutocomplete", () => {
|
|
|
637
639
|
fireEvent.change(input, { target: { value: "random text" } });
|
|
638
640
|
expect(input.value).toEqual("random text");
|
|
639
641
|
fireEvent.blur(input);
|
|
640
|
-
|
|
642
|
+
await waitFor(() => {
|
|
643
|
+
expect(input.value).toEqual(options[0].label);
|
|
644
|
+
});
|
|
641
645
|
});
|
|
642
646
|
});
|
package/src/useAutocomplete.ts
CHANGED
|
@@ -245,7 +245,16 @@ export const useAutocomplete = <T extends Option>({
|
|
|
245
245
|
|
|
246
246
|
const handleOnBlur = () => {
|
|
247
247
|
if (combobox) {
|
|
248
|
-
|
|
248
|
+
// Use a timeout to allow click events on the listbox to fire before this check
|
|
249
|
+
setTimeout(() => {
|
|
250
|
+
// If the blur happened due to a click inside the listbox, don't reset the value
|
|
251
|
+
if (
|
|
252
|
+
!inputRef.current?.contains(document.activeElement) &&
|
|
253
|
+
!listboxRef.current?.contains(document.activeElement)
|
|
254
|
+
) {
|
|
255
|
+
populateInputField(selectedOption ? selectedOption.label : "");
|
|
256
|
+
}
|
|
257
|
+
});
|
|
249
258
|
}
|
|
250
259
|
};
|
|
251
260
|
|