From c1eb8a600970c6d6d313e7c8e6800077e2a30bb1 Mon Sep 17 00:00:00 2001 From: Marjo Poindexter Date: Thu, 8 Apr 2021 16:27:14 -0500 Subject: [PATCH 1/5] add tile option for checkboxes --- package.json | 4 +- .../forms/Checkbox/Checkbox.stories.tsx | 4 ++ .../forms/Checkbox/Checkbox.test.tsx | 14 +++++ src/components/forms/Checkbox/Checkbox.tsx | 7 ++- yarn.lock | 58 +++++++++---------- 5 files changed, 54 insertions(+), 33 deletions(-) diff --git a/package.json b/package.json index a384968b93..784dfcd64d 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "peerDependencies": { "react": "^16.x || ^17.x", "react-dom": "^16.x || ^17.x", - "uswds": "2.9.0" + "uswds": "2.10.0" }, "devDependencies": { "@babel/core": "^7.10.5", @@ -126,7 +126,7 @@ "ts-jest": "^26.1.2", "typescript": "^3.8.0", "url-loader": "^4.0.0", - "uswds": "2.9.0", + "uswds": "2.10.0", "webpack": "^4.41.0", "webpack-cli": "^4.0.0" }, diff --git a/src/components/forms/Checkbox/Checkbox.stories.tsx b/src/components/forms/Checkbox/Checkbox.stories.tsx index 8d44d8086d..18aff0f929 100644 --- a/src/components/forms/Checkbox/Checkbox.stories.tsx +++ b/src/components/forms/Checkbox/Checkbox.stories.tsx @@ -36,3 +36,7 @@ export const withRichLabel = (): React.ReactElement => ( label={My Checkbox} /> ) + +export const tile = (): React.ReactElement => ( + +) diff --git a/src/components/forms/Checkbox/Checkbox.test.tsx b/src/components/forms/Checkbox/Checkbox.test.tsx index 091762ead4..c22e07bde6 100644 --- a/src/components/forms/Checkbox/Checkbox.test.tsx +++ b/src/components/forms/Checkbox/Checkbox.test.tsx @@ -11,3 +11,17 @@ describe('Checkbox component', () => { expect(queryByTestId('checkbox')).toBeInTheDocument() }) }) + +it('renders tiled checkbox', () => { + const { queryByLabelText } = render( + + ) + expect(queryByLabelText('My checkbox')).toHaveClass( + 'usa-checkbox__input usa-checkbox__input--tile' + ) +}) diff --git a/src/components/forms/Checkbox/Checkbox.tsx b/src/components/forms/Checkbox/Checkbox.tsx index ce630829e1..7a77c975c8 100644 --- a/src/components/forms/Checkbox/Checkbox.tsx +++ b/src/components/forms/Checkbox/Checkbox.tsx @@ -12,6 +12,7 @@ interface CheckboxProps { | React.RefObject | null | undefined + tile?: boolean } export const Checkbox = ({ @@ -20,14 +21,18 @@ export const Checkbox = ({ className, label, inputRef, + tile, ...inputProps }: CheckboxProps & JSX.IntrinsicElements['input']): React.ReactElement => { const classes = classnames('usa-checkbox', className) + const checkboxClasses = classnames('usa-checkbox__input', { + 'usa-checkbox__input--tile': tile, + }) return (
Date: Fri, 9 Apr 2021 15:20:22 -0500 Subject: [PATCH 2/5] add optional label description --- .../forms/Checkbox/Checkbox.stories.tsx | 19 +++++++++++++++++++ .../forms/Checkbox/Checkbox.test.tsx | 15 +++++++++++++++ src/components/forms/Checkbox/Checkbox.tsx | 9 +++++++++ 3 files changed, 43 insertions(+) diff --git a/src/components/forms/Checkbox/Checkbox.stories.tsx b/src/components/forms/Checkbox/Checkbox.stories.tsx index 18aff0f929..f2d81cf53c 100644 --- a/src/components/forms/Checkbox/Checkbox.stories.tsx +++ b/src/components/forms/Checkbox/Checkbox.stories.tsx @@ -37,6 +37,25 @@ export const withRichLabel = (): React.ReactElement => ( /> ) +export const WithLabelDescription = (): React.ReactElement => ( + +) + export const tile = (): React.ReactElement => ( ) + +export const tileWithLabelDescription = (): React.ReactElement => ( + +) diff --git a/src/components/forms/Checkbox/Checkbox.test.tsx b/src/components/forms/Checkbox/Checkbox.test.tsx index c22e07bde6..27969bd1bb 100644 --- a/src/components/forms/Checkbox/Checkbox.test.tsx +++ b/src/components/forms/Checkbox/Checkbox.test.tsx @@ -25,3 +25,18 @@ it('renders tiled checkbox', () => { 'usa-checkbox__input usa-checkbox__input--tile' ) }) + +it('renders label description', () => { + const { queryByText } = render( + + ) + expect(queryByText('Label description')).toHaveClass( + 'usa-checkbox__label-description' + ) +}) diff --git a/src/components/forms/Checkbox/Checkbox.tsx b/src/components/forms/Checkbox/Checkbox.tsx index 7a77c975c8..9f7c3734a0 100644 --- a/src/components/forms/Checkbox/Checkbox.tsx +++ b/src/components/forms/Checkbox/Checkbox.tsx @@ -13,6 +13,7 @@ interface CheckboxProps { | null | undefined tile?: boolean + labelDescription?: React.ReactNode } export const Checkbox = ({ @@ -22,12 +23,19 @@ export const Checkbox = ({ label, inputRef, tile, + labelDescription, ...inputProps }: CheckboxProps & JSX.IntrinsicElements['input']): React.ReactElement => { const classes = classnames('usa-checkbox', className) const checkboxClasses = classnames('usa-checkbox__input', { 'usa-checkbox__input--tile': tile, }) + const description = + labelDescription != null ? ( + + {labelDescription} + + ) : null return (
@@ -41,6 +49,7 @@ export const Checkbox = ({ />
) From ffd0c27eeb153d80f1a7bd4650f5878d3c419b22 Mon Sep 17 00:00:00 2001 From: mlm55 Date: Tue, 13 Apr 2021 09:41:42 -0500 Subject: [PATCH 3/5] Update src/components/forms/Checkbox/Checkbox.tsx Co-authored-by: Brandon Lenz --- src/components/forms/Checkbox/Checkbox.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/forms/Checkbox/Checkbox.tsx b/src/components/forms/Checkbox/Checkbox.tsx index 9f7c3734a0..d4d149d0b3 100644 --- a/src/components/forms/Checkbox/Checkbox.tsx +++ b/src/components/forms/Checkbox/Checkbox.tsx @@ -49,7 +49,12 @@ export const Checkbox = ({ />
) From 6d323251c52ebb52b955afb5595065dadd0a568a Mon Sep 17 00:00:00 2001 From: Marjo Poindexter Date: Tue, 13 Apr 2021 09:55:01 -0500 Subject: [PATCH 4/5] check if falsey instead of against null --- src/components/forms/Checkbox/Checkbox.tsx | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/components/forms/Checkbox/Checkbox.tsx b/src/components/forms/Checkbox/Checkbox.tsx index d4d149d0b3..2fe6bc41a6 100644 --- a/src/components/forms/Checkbox/Checkbox.tsx +++ b/src/components/forms/Checkbox/Checkbox.tsx @@ -30,12 +30,6 @@ export const Checkbox = ({ const checkboxClasses = classnames('usa-checkbox__input', { 'usa-checkbox__input--tile': tile, }) - const description = - labelDescription != null ? ( - - {labelDescription} - - ) : null return (
@@ -49,12 +43,11 @@ export const Checkbox = ({ />
) From 41ac67b9a672d9449d8099b2f83e16d701ec4903 Mon Sep 17 00:00:00 2001 From: Marjo Poindexter Date: Tue, 13 Apr 2021 09:55:51 -0500 Subject: [PATCH 5/5] change label description text --- src/components/forms/Checkbox/Checkbox.stories.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/forms/Checkbox/Checkbox.stories.tsx b/src/components/forms/Checkbox/Checkbox.stories.tsx index f2d81cf53c..e49c14fc5a 100644 --- a/src/components/forms/Checkbox/Checkbox.stories.tsx +++ b/src/components/forms/Checkbox/Checkbox.stories.tsx @@ -42,7 +42,7 @@ export const WithLabelDescription = (): React.ReactElement => ( id="checkbox" name="checkbox" label="My Checkbox" - labelDescription="Optional label description" + labelDescription="This is optional text that can be used to describe the label in more detail." /> ) @@ -55,7 +55,7 @@ export const tileWithLabelDescription = (): React.ReactElement => ( id="checkbox" name="checkbox" label="My Checkbox" - labelDescription="Optional label description" + labelDescription="This is optional text that can be used to describe the label in more detail." tile /> )