Skip to content

Commit c87b66d

Browse files
driskullbenelan
authored andcommitted
fix(autocomplete): should open on key input and close when key input is cleared (#12113)
**Related Issue:** #12096 ## Summary - opens the component when input is typed - adds test
1 parent 07d38a2 commit c87b66d

File tree

3 files changed

+25
-1
lines changed

3 files changed

+25
-1
lines changed

packages/calcite-components/src/components/autocomplete/autocomplete.e2e.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -861,4 +861,28 @@ describe("calcite-autocomplete", () => {
861861

862862
expect(inputEvent).toHaveReceivedEventTimes(4);
863863
});
864+
865+
it("should open on input if text exists or close otherwise", async () => {
866+
const page = await newE2EPage();
867+
await page.setContent(simpleHTML);
868+
869+
const autocomplete = await page.find("calcite-autocomplete");
870+
autocomplete.callMethod("setFocus");
871+
await page.waitForChanges();
872+
873+
expect(await autocomplete.getProperty("open")).toBe(true);
874+
875+
autocomplete.setProperty("open", false);
876+
await page.waitForChanges();
877+
878+
await page.keyboard.type("a");
879+
await page.waitForChanges();
880+
881+
expect(await autocomplete.getProperty("open")).toBe(true);
882+
883+
await page.keyboard.press("Backspace");
884+
await page.waitForChanges();
885+
886+
expect(await autocomplete.getProperty("open")).toBe(false);
887+
});
864888
});

packages/calcite-components/src/components/autocomplete/autocomplete.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -750,6 +750,7 @@ export class Autocomplete
750750
private inputHandler(event: CustomEvent): void {
751751
event.stopPropagation();
752752
this.inputValue = (event.target as Input["el"]).value;
753+
this.open = this.inputValue?.length > 0;
753754
this.calciteAutocompleteTextInput.emit();
754755
}
755756

packages/calcite-components/src/demos/autocomplete.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,6 @@ <h1 style="margin: 0; text-align: center">Autocomplete</h1>
509509
async function getSuggestions(locatorAutocomplete, suggestController) {
510510
const signal = suggestController.signal;
511511
removeOldItems(locatorAutocomplete);
512-
locatorAutocomplete.open = true;
513512

514513
const response = await suggestLocations(
515514
"https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer",

0 commit comments

Comments
 (0)