From 33f979ad1690fba0229a73e5999744168814378b Mon Sep 17 00:00:00 2001 From: Harpal Singh Date: Mon, 30 Oct 2023 15:46:03 +0000 Subject: [PATCH 01/12] feat(icon): 4 icons added to the icon font --- package-lock.json | 29 +++--------------- .../__snapshots__/icon-unicodes.spec.js.snap | 4 +++ .../icon/fonts/carbon-icons-webfont.woff | Bin 31116 -> 31752 bytes src/components/icon/icon-config.ts | 4 +++ src/components/icon/icon-type.ts | 4 +++ src/components/icon/icon-unicodes.js | 4 +++ src/style/assets/carbon-icons-webfont.woff | Bin 31116 -> 31752 bytes 7 files changed, 21 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0820e42b25..1bbb7a2097 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,6 @@ "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@actions/github": "^5.1.1", "@axe-core/playwright": "^4.7.3", "@floating-ui/dom": "^1.2.7", "@floating-ui/react-dom": "^1.3.0", @@ -173,21 +172,11 @@ "uuid": "^8.3.2" } }, - "node_modules/@actions/github": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@actions/github/-/github-5.1.1.tgz", - "integrity": "sha512-Nk59rMDoJaV+mHCOJPXuvB1zIbomlKS0dmSIqPGxd0enAXBnOfn4VWF+CGtRCwXZG9Epa54tZA7VIRlJDS8A6g==", - "dependencies": { - "@actions/http-client": "^2.0.1", - "@octokit/core": "^3.6.0", - "@octokit/plugin-paginate-rest": "^2.17.0", - "@octokit/plugin-rest-endpoint-methods": "^5.13.0" - } - }, "node_modules/@actions/http-client": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.1.0.tgz", "integrity": "sha512-BonhODnXr3amchh4qkmjPMUO8mFi/zLaaCeCAJZqch8iQqyDnVIkySjB38VHAC8IJ+bnlgfOqlhpyCUZHlQsqw==", + "dev": true, "dependencies": { "tunnel": "^0.0.6" } @@ -38451,6 +38440,7 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, "engines": { "node": ">=0.6.11 <=0.7.0 || >=0.7.3" } @@ -40310,21 +40300,11 @@ "uuid": "^8.3.2" } }, - "@actions/github": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@actions/github/-/github-5.1.1.tgz", - "integrity": "sha512-Nk59rMDoJaV+mHCOJPXuvB1zIbomlKS0dmSIqPGxd0enAXBnOfn4VWF+CGtRCwXZG9Epa54tZA7VIRlJDS8A6g==", - "requires": { - "@actions/http-client": "^2.0.1", - "@octokit/core": "^3.6.0", - "@octokit/plugin-paginate-rest": "^2.17.0", - "@octokit/plugin-rest-endpoint-methods": "^5.13.0" - } - }, "@actions/http-client": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.1.0.tgz", "integrity": "sha512-BonhODnXr3amchh4qkmjPMUO8mFi/zLaaCeCAJZqch8iQqyDnVIkySjB38VHAC8IJ+bnlgfOqlhpyCUZHlQsqw==", + "dev": true, "requires": { "tunnel": "^0.0.6" } @@ -69483,7 +69463,8 @@ "tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true }, "tunnel-agent": { "version": "0.6.0", diff --git a/src/components/icon/__snapshots__/icon-unicodes.spec.js.snap b/src/components/icon/__snapshots__/icon-unicodes.spec.js.snap index f3b89dec12..83d5363489 100644 --- a/src/components/icon/__snapshots__/icon-unicodes.spec.js.snap +++ b/src/components/icon/__snapshots__/icon-unicodes.spec.js.snap @@ -85,12 +85,14 @@ Object { "circles_connection": "\\\\e979", "clock": "\\\\e919", "close": "\\\\e91e", + "cloud_co2": "\\\\f060", "coins": "\\\\e96a", "collaborate": "\\\\e946", "computer_clock": "\\\\e997", "connect": "\\\\e955", "connect_off": "\\\\f053", "construction": "\\\\f008", + "contact_card": "\\\\f059", "contacts": "\\\\e93b", "copy": "\\\\e91b", "create": "\\\\e940", @@ -166,12 +168,14 @@ Object { "job_seeked": "\\\\f037", "key": "\\\\e92b", "laptop": "\\\\f012", + "leaf": "\\\\f061", "ledger": "\\\\e973", "ledger_arrow_left": "\\\\e971", "ledger_arrow_right": "\\\\e972", "lightbulb_off": "\\\\e95c", "lightbulb_on": "\\\\e95d", "like": "\\\\f056", + "like_no": "\\\\f058", "link": "\\\\e92d", "link_cloud": "\\\\f036", "link_on": "\\\\f043", diff --git a/src/components/icon/fonts/carbon-icons-webfont.woff b/src/components/icon/fonts/carbon-icons-webfont.woff index 972be7184ccaf6d5acdacf25c936b438caaacb38..8d1d40d86281674ba8407453829d833691f04eb8 100644 GIT binary patch delta 31285 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 delta 30665 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 delta 30665 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 Date: Fri, 27 Oct 2023 14:14:02 +0100 Subject: [PATCH 02/12] feat(select): add selectionConfirmed property to event emitted on change Adds a `CustomSelectChangeEvent` type which defines the shape of the new change event emitted when the input value changes, backwards compatibility is maintained so it is still possible to continue to use React's ChangeEvent. Within the new custom event there is a `selectionConfirmed` property that indicates when a user has pressed `Enter` or clicked on a given `Option`. fix #6330 --- .../filterable-select.cy.tsx | 75 +++++++++++ .../select/multi-select/multi-select.cy.tsx | 127 ++++++++++++++++++ .../select/simple-select/simple-select.cy.tsx | 74 ++++++++++ .../filterable-select-test.stories.tsx | 48 ++++++- .../filterable-select.component.tsx | 17 ++- .../filterable-select.spec.tsx | 20 ++- .../filterable-select.stories.mdx | 10 ++ .../filterable-select.stories.tsx | 47 ++++++- src/components/select/index.ts | 5 +- .../multi-select-test.stories.tsx | 48 ++++++- .../multi-select/multi-select.component.tsx | 16 ++- .../select/multi-select/multi-select.spec.tsx | 8 ++ .../select-list/select-list.component.tsx | 11 +- .../select/select-list/select-list.spec.tsx | 14 +- .../select-textbox.component.tsx | 7 +- src/components/select/simple-select/index.ts | 5 +- .../simple-select-test.stories.tsx | 46 ++++++- .../simple-select/simple-select.component.tsx | 19 ++- .../simple-select/simple-select.spec.tsx | 15 ++- .../simple-select/simple-select.stories.mdx | 11 ++ .../simple-select/simple-select.stories.tsx | 47 ++++++- 21 files changed, 635 insertions(+), 35 deletions(-) diff --git a/cypress/components/select/filterable-select/filterable-select.cy.tsx b/cypress/components/select/filterable-select/filterable-select.cy.tsx index deb9422c8d..60605349ce 100644 --- a/cypress/components/select/filterable-select/filterable-select.cy.tsx +++ b/cypress/components/select/filterable-select/filterable-select.cy.tsx @@ -1002,6 +1002,7 @@ context("Tests for FilterableSelect component", () => { selectOption(positionOfElement(position)).click(); cy.get("@onChange").should("have.been.calledWith", { target: { value: option }, + selectionConfirmed: true, }); }); @@ -1131,6 +1132,80 @@ context("Tests for FilterableSelect component", () => { }); }); + describe("selection confirmed", () => { + it("is set on the event when options are clicked", () => { + CypressMountWithProviders(); + + dropdownButton().click(); + selectListText("One").click(); + cy.get('[data-element="confirmed-selection-1"]').should("exist"); + dropdownButton().click(); + selectListText("Five").click(); + cy.get('[data-element="confirmed-selection-1"]').should("not.exist"); + cy.get('[data-element="confirmed-selection-5"]').should("exist"); + dropdownButton().click(); + selectListText("Seven").click(); + cy.get('[data-element="confirmed-selection-5"]').should("not.exist"); + cy.get('[data-element="confirmed-selection-7"]').should("exist"); + }); + + it("is set on the event when Enter key is pressed on an option using ArrowDown key to navigate", () => { + CypressMountWithProviders(); + + dropdownButton().click(); + selectInput().realPress("ArrowDown"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-1"]').should("exist"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-1"]').should("not.exist"); + cy.get('[data-element="confirmed-selection-3"]').should("exist"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-3"]').should("not.exist"); + cy.get('[data-element="confirmed-selection-5"]').should("exist"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-5"]').should("not.exist"); + cy.get('[data-element="confirmed-selection-6"]').should("exist"); + }); + + it("is set on the event when Enter key is pressed on an option using ArrowUp key to navigate", () => { + CypressMountWithProviders(); + + dropdownButton().click(); + selectInput().realPress("ArrowUp"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-9"]').should("exist"); + selectInput().realPress("ArrowUp"); + selectInput().realPress("ArrowUp"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-9"]').should("not.exist"); + cy.get('[data-element="confirmed-selection-7"]').should("exist"); + selectInput().realPress("ArrowUp"); + selectInput().realPress("ArrowUp"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-7"]').should("not.exist"); + cy.get('[data-element="confirmed-selection-5"]').should("exist"); + selectInput().realPress("ArrowUp"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-5"]').should("not.exist"); + cy.get('[data-element="confirmed-selection-4"]').should("exist"); + }); + + it("is set on the event when Enter key is pressed on an option after filtering", () => { + CypressMountWithProviders(); + + dropdownButton().click(); + commonDataElementInputPreview().click().type("th"); + cy.get('[data-element="confirmed-selection-3"]').should("not.exist"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-3"]').should("exist"); + }); + }); + describe("Accessibility tests for FilterableSelect component", () => { it("should pass accessibilty tests for FilterableSelect", () => { CypressMountWithProviders(); diff --git a/cypress/components/select/multi-select/multi-select.cy.tsx b/cypress/components/select/multi-select/multi-select.cy.tsx index 1d02f47d98..b4c0d514ec 100644 --- a/cypress/components/select/multi-select/multi-select.cy.tsx +++ b/cypress/components/select/multi-select/multi-select.cy.tsx @@ -899,6 +899,7 @@ context("Tests for MultiSelect component", () => { selectOption(positionOfElement(position)).click(); cy.get("@onChange").should("have.been.calledWith", { target: { value: option }, + selectionConfirmed: true, }); }); @@ -1083,6 +1084,132 @@ context("Tests for MultiSelect component", () => { }); }); + describe("selection confirmed", () => { + it("is set on the event when options are clicked", () => { + CypressMountWithProviders(); + + dropdownButton().click(); + selectListText("One").click(); + selectListText("Five").click(); + selectListText("Seven").click(); + + cy.get('[data-element="confirmed-selections"]') + .children() + .should("have.length", 3); + cy.get('[data-element="confirmed-selection-1"]').should("exist"); + cy.get('[data-element="confirmed-selection-5"]').should("exist"); + cy.get('[data-element="confirmed-selection-7"]').should("exist"); + }); + + it("is set on the event when Enter key is pressed on an option using ArrowDown key to navigate", () => { + CypressMountWithProviders(); + + dropdownButton().click(); + selectInput().realPress("ArrowDown"); + selectInput().realPress("Enter"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("Enter"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("Enter"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("Enter"); + + cy.get('[data-element="confirmed-selections"]') + .children() + .should("have.length", 4); + cy.get('[data-element="confirmed-selection-1"]').should("exist"); + cy.get('[data-element="confirmed-selection-3"]').should("exist"); + cy.get('[data-element="confirmed-selection-5"]').should("exist"); + cy.get('[data-element="confirmed-selection-6"]').should("exist"); + }); + + it("is set on the event when Enter key is pressed on an option using ArrowUp key to navigate", () => { + CypressMountWithProviders(); + + dropdownButton().click(); + selectInput().realPress("ArrowUp"); + selectInput().realPress("Enter"); + selectInput().realPress("ArrowUp"); + selectInput().realPress("ArrowUp"); + selectInput().realPress("Enter"); + selectInput().realPress("ArrowUp"); + selectInput().realPress("ArrowUp"); + selectInput().realPress("Enter"); + selectInput().realPress("ArrowUp"); + selectInput().realPress("Enter"); + + cy.get('[data-element="confirmed-selections"]') + .children() + .should("have.length", 4); + cy.get('[data-element="confirmed-selection-9"]').should("exist"); + cy.get('[data-element="confirmed-selection-7"]').should("exist"); + cy.get('[data-element="confirmed-selection-5"]').should("exist"); + cy.get('[data-element="confirmed-selection-4"]').should("exist"); + }); + + it("is set on the event when the selected options are removed via Backspace key", () => { + CypressMountWithProviders(); + + dropdownButton().click(); + selectInput().realPress("ArrowDown"); + selectInput().realPress("Enter"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("Enter"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("Enter"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("Enter"); + + cy.get('[data-element="confirmed-selections"]') + .children() + .should("have.length", 4); + + selectInput().realPress("Backspace"); + cy.get('[data-element="confirmed-selections"]') + .children() + .should("have.length", 3); + selectInput().realPress("Backspace"); + cy.get('[data-element="confirmed-selections"]') + .children() + .should("have.length", 2); + selectInput().realPress("Backspace"); + cy.get('[data-element="confirmed-selections"]') + .children() + .should("have.length", 1); + selectInput().realPress("Backspace"); + cy.get('[data-element="confirmed-selections"]') + .children() + .should("have.length", 0); + }); + + it("is set on the event when the selected options are removed via clicking close icon of Pills", () => { + CypressMountWithProviders(); + + dropdownButton().click(); + selectListText("One").click(); + selectListText("Five").click(); + selectListText("Seven").click(); + + cy.get('[data-element="confirmed-selections"]') + .children() + .should("have.length", 3); + pillCloseIcon().eq(2).click(); + cy.get('[data-element="confirmed-selections"]') + .children() + .should("have.length", 2); + pillCloseIcon().eq(1).click(); + cy.get('[data-element="confirmed-selections"]') + .children() + .should("have.length", 1); + pillCloseIcon().eq(0).click(); + cy.get('[data-element="confirmed-selections"]') + .children() + .should("have.length", 0); + }); + }); + describe("Accessibility tests for MultiSelect component", () => { it("should pass accessibilty tests for MultiSelect", () => { CypressMountWithProviders(); diff --git a/cypress/components/select/simple-select/simple-select.cy.tsx b/cypress/components/select/simple-select/simple-select.cy.tsx index 15c3d319a6..3f5903db7c 100644 --- a/cypress/components/select/simple-select/simple-select.cy.tsx +++ b/cypress/components/select/simple-select/simple-select.cy.tsx @@ -991,6 +991,80 @@ context("Tests for SimpleSelect component", () => { }); }); + describe("selection confirmed", () => { + it("is set on the event when options are clicked", () => { + CypressMountWithProviders(); + + dropdownButton().click(); + selectListText("One").click(); + cy.get('[data-element="confirmed-selection-1"]').should("exist"); + dropdownButton().click(); + selectListText("Five").click(); + cy.get('[data-element="confirmed-selection-1"]').should("not.exist"); + cy.get('[data-element="confirmed-selection-5"]').should("exist"); + dropdownButton().click(); + selectListText("Seven").click(); + cy.get('[data-element="confirmed-selection-5"]').should("not.exist"); + cy.get('[data-element="confirmed-selection-7"]').should("exist"); + }); + + it("is set on the event when Enter key is pressed on an option using ArrowDown key to navigate", () => { + CypressMountWithProviders(); + + dropdownButton().click(); + selectInput().realPress("ArrowDown"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-1"]').should("exist"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-1"]').should("not.exist"); + cy.get('[data-element="confirmed-selection-3"]').should("exist"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-3"]').should("not.exist"); + cy.get('[data-element="confirmed-selection-5"]').should("exist"); + selectInput().realPress("ArrowDown"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-5"]').should("not.exist"); + cy.get('[data-element="confirmed-selection-6"]').should("exist"); + }); + + it("is set on the event when Enter key is pressed on an option using ArrowUp key to navigate", () => { + CypressMountWithProviders(); + + dropdownButton().click(); + selectInput().realPress("ArrowUp"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-9"]').should("exist"); + selectInput().realPress("ArrowUp"); + selectInput().realPress("ArrowUp"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-9"]').should("not.exist"); + cy.get('[data-element="confirmed-selection-7"]').should("exist"); + selectInput().realPress("ArrowUp"); + selectInput().realPress("ArrowUp"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-7"]').should("not.exist"); + cy.get('[data-element="confirmed-selection-5"]').should("exist"); + selectInput().realPress("ArrowUp"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-5"]').should("not.exist"); + cy.get('[data-element="confirmed-selection-4"]').should("exist"); + }); + + it("is set on the event when Enter key is pressed on an option after using alpha key", () => { + CypressMountWithProviders(); + + dropdownButton().click(); + selectInput().type("t", { force: true }); + cy.get('[data-element="confirmed-selection-2"]').should("not.exist"); + selectInput().realPress("Enter"); + cy.get('[data-element="confirmed-selection-2"]').should("exist"); + }); + }); + describe("Accessibility tests for SimpleSelect component", () => { it("should pass accessibility tests for SimpleSelect", () => { CypressMountWithProviders(); diff --git a/src/components/select/filterable-select/filterable-select-test.stories.tsx b/src/components/select/filterable-select/filterable-select-test.stories.tsx index 4953773c01..c8c52d0235 100644 --- a/src/components/select/filterable-select/filterable-select-test.stories.tsx +++ b/src/components/select/filterable-select/filterable-select-test.stories.tsx @@ -1,6 +1,11 @@ import React, { useState } from "react"; import partialAction from "../../../../.storybook/utils/partial-action"; -import { FilterableSelect, Option, FilterableSelectProps } from ".."; +import { + FilterableSelect, + Option, + FilterableSelectProps, + CustomSelectChangeEvent, +} from ".."; import OptionRow from "../option-row/option-row.component"; import Dialog from "../../dialog"; import Button from "../../button"; @@ -8,6 +13,7 @@ import Button from "../../button"; export default { component: FilterableSelect, title: "Select/Filterable/Test", + excludeStories: ["SelectionConfirmed"], parameters: { info: { disable: true }, chromatic: { @@ -641,3 +647,43 @@ export const FilterableSelectNestedInDialog = () => { ); }; + +export const SelectionConfirmed = () => { + const [value, setValue] = React.useState(""); + const [confirmedSelection, setConfirmedSelection] = useState(""); + + const handleChange = (event: CustomSelectChangeEvent) => { + setValue(event.target.value); + if (event.selectionConfirmed) { + setConfirmedSelection(event.target.value); + } + }; + return ( + <> + + + + {confirmedSelection ? ( + + {confirmedSelection} + + ) : null} + + ); +}; diff --git a/src/components/select/filterable-select/filterable-select.component.tsx b/src/components/select/filterable-select/filterable-select.component.tsx index e6ea9592e0..0afaee8539 100644 --- a/src/components/select/filterable-select/filterable-select.component.tsx +++ b/src/components/select/filterable-select/filterable-select.component.tsx @@ -17,6 +17,7 @@ import Logger from "../../../__internal__/utils/logger"; import useStableCallback from "../../../hooks/__internal__/useStableCallback"; import useFormSpacing from "../../../hooks/__internal__/useFormSpacing"; import useInputAccessibility from "../../../hooks/__internal__/useInputAccessibility/useInputAccessibility"; +import { CustomSelectChangeEvent } from "../simple-select"; let deprecateInputRefWarnTriggered = false; let deprecateUncontrolledWarnTriggered = false; @@ -169,24 +170,25 @@ export const FilterableSelect = React.forwardRef( } const createCustomEvent = useCallback( - (newValue) => { + (newValue, selectionConfirmed) => { const customEvent = { target: { ...(name && { name }), ...(id && { id }), value: newValue, }, + selectionConfirmed, }; - return customEvent as React.ChangeEvent; + return customEvent as CustomSelectChangeEvent; }, [name, id] ); const triggerChange = useCallback( - (newValue) => { + (newValue, selectionConfirmed) => { if (onChange) { - onChange(createCustomEvent(newValue)); + onChange(createCustomEvent(newValue, selectionConfirmed)); } }, [onChange, createCustomEvent] @@ -213,7 +215,7 @@ export const FilterableSelect = React.forwardRef( if (!match || isFilterCleared) { setTextValue(newFilterText); - triggerChange(""); + triggerChange("", false); return ""; } @@ -224,7 +226,7 @@ export const FilterableSelect = React.forwardRef( return match.props.value; } - triggerChange(match.props.value); + triggerChange(match.props.value, false); if ( match.props.text @@ -456,6 +458,7 @@ export const FilterableSelect = React.forwardRef( text, value: newValue, selectionType, + selectionConfirmed, } = optionData; if (selectionType === "tab") { @@ -471,7 +474,7 @@ export const FilterableSelect = React.forwardRef( } setTextValue(text); - triggerChange(newValue); + triggerChange(newValue, selectionConfirmed); setActiveDescendantId(selectedOptionId); if (selectionType !== "navigationKey") { diff --git a/src/components/select/filterable-select/filterable-select.spec.tsx b/src/components/select/filterable-select/filterable-select.spec.tsx index de637a3375..c41e80ae85 100644 --- a/src/components/select/filterable-select/filterable-select.spec.tsx +++ b/src/components/select/filterable-select/filterable-select.spec.tsx @@ -579,23 +579,27 @@ describe("FilterableSelect", () => { value: "Foo", text: "Bar", selectionType: "navigationKey", + selectionConfirmed: false, }; const clickOptionObject = { value: "Foo", text: "Bar", selectionType: "click", + selectionConfirmed: true, }; const textboxProps = { name: "testName", id: "testId", }; const expectedEventObject = { + selectionConfirmed: true, target: { ...textboxProps, value: "Foo", }, }; const expectedDeleteEventObject = { + selectionConfirmed: false, target: { ...textboxProps, value: "", @@ -880,6 +884,7 @@ describe("FilterableSelect", () => { value: "opt3", text: "black", selectionType: "click", + selectionConfirmed: true, }; beforeEach(() => { @@ -900,7 +905,10 @@ describe("FilterableSelect", () => { act(() => { wrapper.find(SelectList).prop("onSelect")(clickOptionObject); }); - expect(onChangeFn).toHaveBeenCalledWith(expectedObject); + expect(onChangeFn).toHaveBeenCalledWith({ + selectionConfirmed: true, + ...expectedObject, + }); }); }); @@ -912,7 +920,10 @@ describe("FilterableSelect", () => { }); it("then the onChange function should have been called with with the expected value", () => { - expect(onChangeFn).toHaveBeenCalledWith(expectedObject); + expect(onChangeFn).toHaveBeenCalledWith({ + selectionConfirmed: false, + ...expectedObject, + }); }); describe("and an an empty value has been passed", () => { @@ -931,7 +942,10 @@ describe("FilterableSelect", () => { }); it("then the onChange function should have been called with with the expected value", () => { - expect(onChangeFn).toHaveBeenCalledWith(expectedObject); + expect(onChangeFn).toHaveBeenCalledWith({ + selectionConfirmed: false, + ...expectedObject, + }); }); it("then the Textbox visible value should be changed to that character", () => { diff --git a/src/components/select/filterable-select/filterable-select.stories.mdx b/src/components/select/filterable-select/filterable-select.stories.mdx index d19e0688ae..63c4047edd 100644 --- a/src/components/select/filterable-select/filterable-select.stories.mdx +++ b/src/components/select/filterable-select/filterable-select.stories.mdx @@ -167,6 +167,16 @@ be customised if desired using the `virtualScrollOverscan` prop. Higher values w +### Selection confirmed + +A change event is emitted each time an option is navigated via keyboard as it sets the value of the +Select input. For those that need to trigger further actions when the user makes a selection, there is +a `selectionConfirmed` property on the emitted event when the enter key is pressed or an option is clicked. + + + + + ## Props ### Filterable Select diff --git a/src/components/select/filterable-select/filterable-select.stories.tsx b/src/components/select/filterable-select/filterable-select.stories.tsx index fa7d84b8c8..2156c13099 100644 --- a/src/components/select/filterable-select/filterable-select.stories.tsx +++ b/src/components/select/filterable-select/filterable-select.stories.tsx @@ -1,9 +1,16 @@ import React, { useState, useRef } from "react"; -import { FilterableSelect, Option, OptionRow } from ".."; +import { + CustomSelectChangeEvent, + FilterableSelect, + Option, + OptionRow, +} from ".."; import Button from "../../button"; import Dialog from "../../dialog"; import CarbonProvider from "../../carbon-provider"; import Box from "../../box"; +import Icon from "../../icon"; +import Typography from "../../typography"; export const Default = () => ( @@ -708,3 +715,41 @@ export const Virtualised = () => { ); }; + +export const SelectionConfirmedStory = () => { + const [selectionConfirmed, setSelectionConfirmed] = useState(false); + return ( + + + Selection Confirmed:{" "} + {selectionConfirmed ? ( + + ) : ( + + )} + + { + setSelectionConfirmed(!!ev.selectionConfirmed); + }} + name="selection confirmed" + id="selection confirmed" + label="color" + > + + + ); +}; + +SelectionConfirmedStory.parameters = { chromatic: { disableSnapshot: true } }; diff --git a/src/components/select/index.ts b/src/components/select/index.ts index e19fece48e..b1203823ce 100644 --- a/src/components/select/index.ts +++ b/src/components/select/index.ts @@ -5,7 +5,10 @@ export type { OptionRowProps } from "./option-row"; export { default as OptionGroupHeader } from "./option-group-header"; export type { OptionGroupHeaderProps } from "./option-group-header"; export { default as Select } from "./simple-select"; -export type { SimpleSelectProps } from "./simple-select"; +export type { + SimpleSelectProps, + CustomSelectChangeEvent, +} from "./simple-select"; export { default as FilterableSelect } from "./filterable-select"; export type { FilterableSelectProps } from "./filterable-select"; export { default as MultiSelect } from "./multi-select"; diff --git a/src/components/select/multi-select/multi-select-test.stories.tsx b/src/components/select/multi-select/multi-select-test.stories.tsx index 4eefd7d711..152953756d 100644 --- a/src/components/select/multi-select/multi-select-test.stories.tsx +++ b/src/components/select/multi-select/multi-select-test.stories.tsx @@ -1,5 +1,10 @@ import React, { useState } from "react"; -import { MultiSelect, Option, MultiSelectProps } from ".."; +import { + MultiSelect, + Option, + MultiSelectProps, + CustomSelectChangeEvent, +} from ".."; import partialAction from "../../../../.storybook/utils/partial-action"; import OptionRow from "../option-row/option-row.component"; import Button from "../../button/button.component"; @@ -10,6 +15,7 @@ import CarbonProvider from "../../carbon-provider/carbon-provider.component"; export default { component: MultiSelect, title: "Select/MultiSelect/Test", + excludeStories: ["SelectionConfirmed"], parameters: { info: { disable: true }, chromatic: { @@ -589,3 +595,43 @@ export const MultiSelectErrorOnChangeNewValidation = () => { ); }; + +export const SelectionConfirmed = () => { + const [value, setValue] = useState([]); + const [confirmedSelections, setConfirmedSelections] = useState([]); + + const handleChange = (event: CustomSelectChangeEvent) => { + setValue((event.target.value as unknown) as string[]); + if (event.selectionConfirmed) { + setConfirmedSelections((event.target.value as unknown) as string[]); + } + }; + return ( + <> + + + +
+ {confirmedSelections.map((cs) => ( + {cs} + ))} +
+ + ); +}; diff --git a/src/components/select/multi-select/multi-select.component.tsx b/src/components/select/multi-select/multi-select.component.tsx index 90d967a107..6690d3bc28 100644 --- a/src/components/select/multi-select/multi-select.component.tsx +++ b/src/components/select/multi-select/multi-select.component.tsx @@ -28,6 +28,7 @@ import useFormSpacing from "../../../hooks/__internal__/useFormSpacing"; import useInputAccessibility from "../../../hooks/__internal__/useInputAccessibility/useInputAccessibility"; import { OptionProps } from "../option"; import { OptionRowProps } from "../option-row"; +import { CustomSelectChangeEvent } from "../simple-select"; let deprecateInputRefWarnTriggered = false; let deprecateUncontrolledWarnTriggered = false; @@ -191,16 +192,17 @@ export const MultiSelect = React.forwardRef( }, [onOpen]); const createCustomEvent = useCallback( - (newValue) => { + (newValue, selectionConfirmed) => { const customEvent = { target: { ...(name && { name }), ...(id && { id }), value: newValue, }, + selectionConfirmed, }; - return customEvent as React.ChangeEvent; + return customEvent as CustomSelectChangeEvent; }, [name, id] ); @@ -213,14 +215,15 @@ export const MultiSelect = React.forwardRef( ( updateFunction: ( previousValue: string[] | Record[] - ) => string[] | Record[] + ) => string[] | Record[], + selectionConfirmed ) => { const newValue = updateFunction( actualValue as string[] | Record[] ); // only call onChange if an option has been selected or deselected if (onChange && newValue.length !== actualValue?.length) { - onChange(createCustomEvent(newValue)); + onChange(createCustomEvent(newValue, selectionConfirmed)); } // no need to update selectedValue if the component is controlled: onChange should take care of updating the value @@ -270,7 +273,7 @@ export const MultiSelect = React.forwardRef( newValue.splice(index, 1); return newValue; - }); + }, true); }, [updateValue] ); @@ -534,6 +537,7 @@ export const MultiSelect = React.forwardRef( value: newValue, selectionType, id: selectedOptionId, + selectionConfirmed, } = optionData; if (selectionType === "navigationKey") { @@ -561,7 +565,7 @@ export const MultiSelect = React.forwardRef( } return [...previousValue, newValue]; - }); + }, selectionConfirmed); }, [textboxRef, actualValue, updateValue] ); diff --git a/src/components/select/multi-select/multi-select.spec.tsx b/src/components/select/multi-select/multi-select.spec.tsx index 7c1d61067b..0122877ab4 100644 --- a/src/components/select/multi-select/multi-select.spec.tsx +++ b/src/components/select/multi-select/multi-select.spec.tsx @@ -484,6 +484,7 @@ describe("MultiSelect", () => { value: "opt3", text: "blue", selectionType: "enter", + selectionConfirmed: true, }; const changeEventObject = { target: { value: "b" } }; @@ -749,17 +750,20 @@ describe("MultiSelect", () => { value: "opt1", text: "red", selectionType: "enter", + selectionConfirmed: true, }; const mockNavigationKeyOptionObject = { value: "opt1", text: "red", selectionType: "navigationKey", + selectionConfirmed: false, }; const textboxProps = { name: "testName", id: "testId", }; const expectedEventObject = { + selectionConfirmed: true, target: { ...textboxProps, value: ["opt1"], @@ -958,6 +962,7 @@ describe("MultiSelect", () => { describe("when the component is controlled", () => { const expectedObject = { + selectionConfirmed: true, target: { id: "testSelect", name: "testSelect", @@ -969,6 +974,7 @@ describe("MultiSelect", () => { value: "opt2", text: "black", selectionType: "click", + selectionConfirmed: true, }; describe("and an option is selected", () => { @@ -1069,12 +1075,14 @@ describe("MultiSelect", () => { value: "opt1", text: "red", selectionType: "enter", + selectionConfirmed: true, }; const textboxProps = { name: "testName", id: "testId", }; const expectedEventObject = { + selectionConfirmed: true, target: { ...textboxProps, value: ["opt1"], diff --git a/src/components/select/select-list/select-list.component.tsx b/src/components/select/select-list/select-list.component.tsx index 1d8c86b1af..0ea42b59bb 100644 --- a/src/components/select/select-list/select-list.component.tsx +++ b/src/components/select/select-list/select-list.component.tsx @@ -48,6 +48,7 @@ export interface SelectListProps { value?: string | Record; id?: string; selectionType: string; + selectionConfirmed: boolean; }) => void; /** A callback for when the list should be closed */ onSelectListClose: () => void; @@ -185,7 +186,11 @@ const SelectList = React.forwardRef( const handleSelect = useCallback( (optionData) => { - onSelect({ ...optionData, selectionType: "click" }); + onSelect({ + ...optionData, + selectionType: "click", + selectionConfirmed: true, + }); }, [onSelect] ); @@ -329,6 +334,7 @@ const SelectList = React.forwardRef( id: childIds ? childIds[nextIndex] : /* istanbul ignore next */ undefined, + selectionConfirmed: false, }); }, [ @@ -345,7 +351,7 @@ const SelectList = React.forwardRef( const handleActionButtonTab = useCallback( (event, isActionButtonFocused) => { if (isActionButtonFocused) { - onSelect({ selectionType: "tab" }); + onSelect({ selectionType: "tab", selectionConfirmed: false }); } else { event.preventDefault(); listActionButtonRef.current?.focus(); @@ -393,6 +399,7 @@ const SelectList = React.forwardRef( text, value, selectionType: "enterKey", + selectionConfirmed: true, }); } else if (isNavigationKey(key)) { focusOnAnchor(); diff --git a/src/components/select/select-list/select-list.spec.tsx b/src/components/select/select-list/select-list.spec.tsx index 58409ca289..1591f93686 100644 --- a/src/components/select/select-list/select-list.spec.tsx +++ b/src/components/select/select-list/select-list.spec.tsx @@ -346,6 +346,7 @@ describe("SelectList", () => { selectionType: "enterKey", text: "blue", value: "opt3", + selectionConfirmed: true, }); }); }); @@ -363,6 +364,7 @@ describe("SelectList", () => { selectionType: "navigationKey", text: "red", value: "opt1", + selectionConfirmed: false, }); }); }); @@ -380,6 +382,7 @@ describe("SelectList", () => { selectionType: "navigationKey", text: "red", value: "opt1", + selectionConfirmed: false, }); }); @@ -410,6 +413,7 @@ describe("SelectList", () => { selectionType: "navigationKey", text: "blue", value: "opt3", + selectionConfirmed: false, }); }); }); @@ -427,6 +431,7 @@ describe("SelectList", () => { selectionType: "navigationKey", text: "blue", value: "opt3", + selectionConfirmed: false, }); }); }); @@ -443,6 +448,7 @@ describe("SelectList", () => { selectionType: "navigationKey", text: "red", value: "opt1", + selectionConfirmed: false, }); }); }); @@ -458,6 +464,7 @@ describe("SelectList", () => { selectionType: "navigationKey", text: "blue", value: "opt3", + selectionConfirmed: false, }); }); }); @@ -498,6 +505,7 @@ describe("SelectList", () => { selectionType: "click", text: "red", value: "opt1", + selectionConfirmed: true, }); }); }); @@ -771,7 +779,10 @@ describe("SelectList", () => { const testContainer = document.createElement("div"); const onFocusFn = jest.fn(); const onSelectFn = jest.fn(); - const expectedSelectValue = { selectionType: "tab" }; + const expectedSelectValue = { + selectionType: "tab", + selectionConfirmed: false, + }; document.body.appendChild(testContainer); @@ -915,6 +926,7 @@ describe("SelectList", () => { selectionType: "navigationKey", text: "red", value: "opt1", + selectionConfirmed: false, }); }); }); diff --git a/src/components/select/select-textbox/select-textbox.component.tsx b/src/components/select/select-textbox/select-textbox.component.tsx index 8f86fa400c..dd6cc5e2c9 100644 --- a/src/components/select/select-textbox/select-textbox.component.tsx +++ b/src/components/select/select-textbox/select-textbox.component.tsx @@ -6,6 +6,7 @@ import Textbox, { CommonTextboxProps } from "../../textbox"; import SelectText from "../__internal__/select-text"; import useLocale from "../../../hooks/__internal__/useLocale"; import { ValidationProps } from "../../../__internal__/validations"; +import { CustomSelectChangeEvent } from "../simple-select/simple-select.component"; const floatingMiddleware = [ offset(({ rects }) => ({ @@ -21,7 +22,7 @@ const floatingMiddleware = [ export interface FormInputPropTypes extends ValidationProps, - Omit { + Omit { /** Breakpoint for adaptive label (inline labels change to top aligned). Enables the adaptive behaviour when set */ adaptiveLabelBreakpoint?: number; /** Prop to specify the aria-label attribute of the component input */ @@ -49,7 +50,9 @@ export interface FormInputPropTypes /** Specify a callback triggered on blur */ onBlur?: (ev: React.FocusEvent) => void; /** Specify a callback triggered on change */ - onChange?: (ev: React.ChangeEvent) => void; + onChange?: ( + ev: CustomSelectChangeEvent | React.ChangeEvent + ) => void; /** Specify a callback triggered on click */ onClick?: (ev: React.MouseEvent) => void; /** Specify a callback triggered on focus */ diff --git a/src/components/select/simple-select/index.ts b/src/components/select/simple-select/index.ts index ab19d3d035..97a1553a58 100644 --- a/src/components/select/simple-select/index.ts +++ b/src/components/select/simple-select/index.ts @@ -1,2 +1,5 @@ export { default } from "./simple-select.component"; -export type { SimpleSelectProps } from "./simple-select.component"; +export type { + SimpleSelectProps, + CustomSelectChangeEvent, +} from "./simple-select.component"; diff --git a/src/components/select/simple-select/simple-select-test.stories.tsx b/src/components/select/simple-select/simple-select-test.stories.tsx index 5bc5935fcc..f2d15f10e2 100644 --- a/src/components/select/simple-select/simple-select-test.stories.tsx +++ b/src/components/select/simple-select/simple-select-test.stories.tsx @@ -1,7 +1,10 @@ import React, { useState } from "react"; import Typography from "../../../components/typography"; import Content from "../../../components/content"; -import { Select as SimpleSelect } from "../../../../src/components/select"; +import { + CustomSelectChangeEvent, + Select as SimpleSelect, +} from "../../../../src/components/select"; import OptionRow from "../option-row/option-row.component"; import OptionGroupHeader from "../option-group-header/option-group-header.component"; import Box from "../../box"; @@ -12,6 +15,7 @@ import { Select, Option, SimpleSelectProps } from ".."; export default { component: Select, title: "Select/Test", + excludeStories: ["SelectionConfirmed"], parameters: { info: { disable: true }, chromatic: { @@ -702,3 +706,43 @@ SelectWithOptionGroupHeader.args = { listPlacement: undefined, flipEnabled: true, }; + +export const SelectionConfirmed = () => { + const [value, setValue] = React.useState(""); + const [confirmedSelection, setConfirmedSelection] = useState(""); + + const handleChange = (event: CustomSelectChangeEvent) => { + setValue(event.target.value); + if (event.selectionConfirmed) { + setConfirmedSelection(event.target.value); + } + }; + return ( + <> + + + {confirmedSelection ? ( + + {confirmedSelection} + + ) : null} + + ); +}; diff --git a/src/components/select/simple-select/simple-select.component.tsx b/src/components/select/simple-select/simple-select.component.tsx index 0df95e1eb7..634c5b2853 100644 --- a/src/components/select/simple-select/simple-select.component.tsx +++ b/src/components/select/simple-select/simple-select.component.tsx @@ -25,6 +25,11 @@ let deprecateUncontrolledWarnTriggered = false; type TimerId = ReturnType; +export interface CustomSelectChangeEvent + extends React.ChangeEvent { + selectionConfirmed?: boolean; +} + export interface SimpleSelectProps extends Omit { /** Prop to specify the aria-label attribute of the component input */ @@ -164,16 +169,17 @@ export const SimpleSelect = React.forwardRef( ]) as React.ReactElement[]; const createCustomEvent = useCallback( - (newValue) => { + (newValue, selectionConfirmed = false) => { const customEvent = { target: { ...(name && { name }), ...(id && { id }), value: newValue, }, + selectionConfirmed, }; - return customEvent as React.ChangeEvent; + return customEvent as CustomSelectChangeEvent; }, [name, id] ); @@ -406,7 +412,8 @@ export const SimpleSelect = React.forwardRef( function updateValue( newValue?: string | Record, - text?: string + text?: string, + selectionConfirmed?: boolean ) { if (!isControlled.current) { setSelectedValue(newValue); @@ -414,7 +421,7 @@ export const SimpleSelect = React.forwardRef( } if (onChange) { - onChange(createCustomEvent(newValue)); + onChange(createCustomEvent(newValue, selectionConfirmed)); } } @@ -423,16 +430,18 @@ export const SimpleSelect = React.forwardRef( value?: string | Record; id?: string; selectionType: string; + selectionConfirmed?: boolean; }) { const { text, value: newValue, selectionType, id: selectedOptionId, + selectionConfirmed, } = optionData; const isClickTriggered = selectionType === "click"; - updateValue(newValue, text); + updateValue(newValue, text, selectionConfirmed); setActiveDescendantId(selectedOptionId); if (selectionType !== "navigationKey") { diff --git a/src/components/select/simple-select/simple-select.spec.tsx b/src/components/select/simple-select/simple-select.spec.tsx index 8101b7974c..999965f1a2 100644 --- a/src/components/select/simple-select/simple-select.spec.tsx +++ b/src/components/select/simple-select/simple-select.spec.tsx @@ -700,6 +700,7 @@ describe("SimpleSelect", () => { id: "testId", }; const mockEventObject = { + selectionConfirmed: false, target: { ...textboxProps, value: "opt3", @@ -720,17 +721,20 @@ describe("SimpleSelect", () => { value: "opt2", text: "green", selectionType: "navigationKey", + selectionConfirmed: false, }; const clickOptionObject = { value: "opt2", text: "green", selectionType: "click", + selectionConfirmed: true, }; const textboxProps = { name: "testName", id: "testId", }; const expectedEventObject = { + selectionConfirmed: true, target: { ...textboxProps, value: "opt2", @@ -894,6 +898,7 @@ describe("SimpleSelect", () => { value: "opt3", text: "black", selectionType: "click", + selectionConfirmed: true, }; beforeEach(() => { @@ -910,7 +915,10 @@ describe("SimpleSelect", () => { act(() => { wrapper.find(SelectList).prop("onSelect")(clickOptionObject); }); - expect(onChangeFn).toHaveBeenCalledWith(expectedObject); + expect(onChangeFn).toHaveBeenCalledWith({ + selectionConfirmed: true, + ...expectedObject, + }); }); }); @@ -925,7 +933,10 @@ describe("SimpleSelect", () => { }); it("then the onChange function should have been called with with the expected value", () => { - expect(onChangeFn).toHaveBeenCalledWith(expectedObject); + expect(onChangeFn).toHaveBeenCalledWith({ + selectionConfirmed: false, + ...expectedObject, + }); }); }); diff --git a/src/components/select/simple-select/simple-select.stories.mdx b/src/components/select/simple-select/simple-select.stories.mdx index d7bed0946e..8787c6d9ce 100644 --- a/src/components/select/simple-select/simple-select.stories.mdx +++ b/src/components/select/simple-select/simple-select.stories.mdx @@ -192,6 +192,17 @@ be customised if desired using the `virtualScrollOverscan` prop. Higher values w +### Selection confirmed + +A change event is emitted each time an option is navigated via keyboard as it sets the value of the +Select input. For those that need to trigger further actions when the user makes a selection, there is +a `selectionConfirmed` property on the emitted event when the enter key is pressed or an option is clicked. + + + + + + ## Props ### Select diff --git a/src/components/select/simple-select/simple-select.stories.tsx b/src/components/select/simple-select/simple-select.stories.tsx index fc8a2486bd..ccd6dbf1a0 100644 --- a/src/components/select/simple-select/simple-select.stories.tsx +++ b/src/components/select/simple-select/simple-select.stories.tsx @@ -1,9 +1,16 @@ import React, { useState, useRef } from "react"; -import { Select, Option, OptionRow, OptionGroupHeader } from ".."; +import { + Select, + Option, + OptionRow, + OptionGroupHeader, + CustomSelectChangeEvent, +} from ".."; import Button from "../../button"; import Icon from "../../icon"; import CarbonProvider from "../../carbon-provider"; import Box from "../../box"; +import Typography from "../../typography"; export const Default = () => ( { + setSelectionConfirmed(!!ev.selectionConfirmed); + }} + name="selection confirmed" + id="selection confirmed" + label="color" + > +