From c93c8d2a2fe36e380ea3c00c60ec4400df3ba7d6 Mon Sep 17 00:00:00 2001 From: Nathan Vasse Date: Fri, 19 May 2023 12:09:14 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(react)=20add=20disable=20property=20t?= =?UTF-8?q?o=20select=20option?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Based on recent feedbacks, this feature was needed for consumer apps. Resolve #60 --- .changeset/wet-spiders-hide.md | 5 ++ .../src/components/Forms/Select/index.mdx | 10 +++ .../src/components/Forms/Select/index.scss | 5 ++ .../components/Forms/Select/index.spec.tsx | 66 +++++++++++++++++++ .../src/components/Forms/Select/index.tsx | 37 +++++++---- .../components/Forms/Select/mono.stories.tsx | 8 +++ .../src/components/Forms/Select/tokens.ts | 1 + packages/react/src/cunningham-tokens.css | 1 + 8 files changed, 119 insertions(+), 14 deletions(-) create mode 100644 .changeset/wet-spiders-hide.md diff --git a/.changeset/wet-spiders-hide.md b/.changeset/wet-spiders-hide.md new file mode 100644 index 0000000..dfbc348 --- /dev/null +++ b/.changeset/wet-spiders-hide.md @@ -0,0 +1,5 @@ +--- +"@openfun/cunningham-react": minor +--- + +add disable property to select option diff --git a/packages/react/src/components/Forms/Select/index.mdx b/packages/react/src/components/Forms/Select/index.mdx index a3519db..831b66d 100644 --- a/packages/react/src/components/Forms/Select/index.mdx +++ b/packages/react/src/components/Forms/Select/index.mdx @@ -26,6 +26,7 @@ The available options must be given via the `options` props. It is an array of o code={`{ label: string value?: string + disabled?: boolean; }`} /> @@ -83,6 +84,15 @@ By default, the select is clearable ( the cross icon on the right is shown ). Yo + +## Disabled options + +You can disable some options by using the `disabled` props on the `Option` object. + + + + + ## Controlled / Non Controlled Like a native select, you can use the Select component in a controlled or non controlled way. You can see the example below diff --git a/packages/react/src/components/Forms/Select/index.scss b/packages/react/src/components/Forms/Select/index.scss index 8791ef4..9a8f30f 100644 --- a/packages/react/src/components/Forms/Select/index.scss +++ b/packages/react/src/components/Forms/Select/index.scss @@ -121,6 +121,11 @@ &--selected { background-color: var(--c--components--forms-select--item-background-color--selected); } + + &--disabled { + color: var(--c--components--forms-select--item-color--disabled); + cursor: default; + } } } diff --git a/packages/react/src/components/Forms/Select/index.spec.tsx b/packages/react/src/components/Forms/Select/index.spec.tsx index f18f1e3..e35fdd9 100644 --- a/packages/react/src/components/Forms/Select/index.spec.tsx +++ b/packages/react/src/components/Forms/Select/index.spec.tsx @@ -35,6 +35,12 @@ describe("", () => { }) ).not.toBeInTheDocument(); }); + it("is not possible to select disabled options", async () => { + render( + +