From 8bb54fa65c4bf423867697da074d782538d98463 Mon Sep 17 00:00:00 2001 From: Nikhil Tomar <63502271+2nikhiltom@users.noreply.github.com> Date: Thu, 25 Apr 2024 20:38:52 +0530 Subject: [PATCH] fix(10343): Adds support for 'required' prop on RadioTile & TileGroup (#16237) * fix(10343): adds support for 'required' prop in RadioTile * chore: updates readme * feat(10343): adds required attribute support to TileGroup * test(tilegroup): cover required attribute behavior in tests --------- Co-authored-by: Taylor Jones Co-authored-by: Taylor Jones --- .all-contributorsrc | 9 ++++ README.md | 4 +- .../__snapshots__/PublicAPI-test.js.snap | 3 ++ .../components/RadioTile/RadioTile-test.js | 8 ++++ .../src/components/RadioTile/RadioTile.tsx | 12 ++++++ .../src/components/TileGroup/TileGroup.tsx | 13 +++++- .../TileGroup/__tests__/TileGroup-test.js | 42 ++++++++++++++++++- 7 files changed, 88 insertions(+), 3 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 193515950cd7..955f1884a16a 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1497,6 +1497,15 @@ "contributions": [ "code" ] + }, + { + "login": "2nikhiltom", + "name": "Nikhil Tomar", + "avatar_url": "https://avatars.githubusercontent.com/2nikhiltom?v=4", + "profile": "https://github.com/2nikhiltom", + "contributions": [ + "code" + ] } ], "commitConvention": "none" diff --git a/README.md b/README.md index 7da9ea03bbc9..d24fda04b38c 100644 --- a/README.md +++ b/README.md @@ -283,10 +283,12 @@ check out our [Contributing Guide](/.github/CONTRIBUTING.md) and our
Joseph Schultz

💻
anjaly0606

💻
jesnajoseijk

💻 -
Jawahar S

💻 + +
Jawahar S

💻
Holly Springsteen

💻 +
Nikhil Tomar

💻 diff --git a/packages/react/__tests__/__snapshots__/PublicAPI-test.js.snap b/packages/react/__tests__/__snapshots__/PublicAPI-test.js.snap index 3b858175b6f8..43e3c1b3776b 100644 --- a/packages/react/__tests__/__snapshots__/PublicAPI-test.js.snap +++ b/packages/react/__tests__/__snapshots__/PublicAPI-test.js.snap @@ -6591,6 +6591,9 @@ Map { "onChange": Object { "type": "func", }, + "required": Object { + "type": "bool", + }, "tabIndex": Object { "type": "number", }, diff --git a/packages/react/src/components/RadioTile/RadioTile-test.js b/packages/react/src/components/RadioTile/RadioTile-test.js index 82077918c321..7b91f4e66a47 100644 --- a/packages/react/src/components/RadioTile/RadioTile-test.js +++ b/packages/react/src/components/RadioTile/RadioTile-test.js @@ -123,5 +123,13 @@ describe('RadioTile', () => { expect(ref.current.type).toEqual('radio'); expect(ref.current.value).toEqual('some test value'); }); + it('should pass "required" prop to the input element', () => { + render( + + Option 1 + + ); + expect(screen.getByRole('radio')).toHaveAttribute('required'); + }); }); }); diff --git a/packages/react/src/components/RadioTile/RadioTile.tsx b/packages/react/src/components/RadioTile/RadioTile.tsx index 36dbd92f6bd6..44749a5f5912 100644 --- a/packages/react/src/components/RadioTile/RadioTile.tsx +++ b/packages/react/src/components/RadioTile/RadioTile.tsx @@ -81,6 +81,11 @@ export interface RadioTileProps { * Specify the value of the underlying ``. */ value: string | number; + + /** + * `true` to specify if the input is required. + */ + required?: boolean; } const RadioTile = React.forwardRef(function RadioTile( @@ -95,6 +100,7 @@ const RadioTile = React.forwardRef(function RadioTile( id, onChange = noopFn, tabIndex = 0, + required, ...rest }: RadioTileProps, ref: React.Ref @@ -153,6 +159,7 @@ const RadioTile = React.forwardRef(function RadioTile( type="radio" value={value} ref={ref} + required={required} />