File tree Expand file tree Collapse file tree 4 files changed +25
-40
lines changed
src/components/form-elements/fieldset Expand file tree Collapse file tree 4 files changed +25
-40
lines changed Original file line number Diff line number Diff line change 1- import React , { HTMLProps , MutableRefObject } from 'react' ;
1+ import React , { HTMLProps } from 'react' ;
22import classNames from 'classnames' ;
33import Legend from '../legend/Legend' ;
4- import FormGroup from '../../utils/FormGroup' ;
54
6- export interface FieldsetProps extends HTMLProps < HTMLFieldSetElement > {
7- fieldsetRef ?: MutableRefObject < HTMLFieldSetElement | null > ;
8- disableErrorLine ?: boolean ;
9- }
5+ export type FieldsetProps = HTMLProps < HTMLFieldSetElement > ;
6+
7+ const FieldsetComponent = ( { children, className, ...rest } : FieldsetProps ) => {
8+ if ( ! children ) {
9+ return null ;
10+ }
1011
11- const FieldsetComponent = ( {
12- className,
13- fieldsetRef,
14- disableErrorLine,
15- ...rest
16- } : FieldsetProps ) => {
1712 return (
18- < FormGroup enableErrorLine = { ! disableErrorLine } >
19- < fieldset className = { classNames ( 'nhsuk-fieldset' , className ) } ref = { fieldsetRef } { ... rest } />
20- </ FormGroup >
13+ < fieldset className = { classNames ( 'nhsuk-fieldset' , className ) } { ... rest } >
14+ { children }
15+ </ fieldset >
2116 ) ;
2217} ;
2318
Original file line number Diff line number Diff line change @@ -20,13 +20,9 @@ describe('Fieldset', () => {
2020 expect ( container . textContent ) . toBe ( 'Text' ) ;
2121 } ) ;
2222
23- it ( 'Wraps children in form group if the fieldset contains form elements' , ( ) => {
24- const { container } = render (
25- < Fieldset >
26- < TextInput />
27- </ Fieldset > ,
28- ) ;
23+ it ( 'renders null with no children' , ( ) => {
24+ const { container } = render ( < Fieldset /> ) ;
2925
30- expect ( container . firstChild ) . toHaveClass ( 'nhsuk-form-group' ) ;
26+ expect ( container . querySelector ( 'fieldset' ) ) . toBeNull ( ) ;
3127 } ) ;
3228} ) ;
Original file line number Diff line number Diff line change 22
33exports [` Fieldset matches snapshot: Fieldset 1` ] = `
44<div >
5- <div
6- class = " nhsuk-form-group "
5+ <fieldset
6+ class = " nhsuk-fieldset "
77 >
8- <fieldset
9- class = " nhsuk-fieldset "
8+ <div
9+ class = " nhsuk-form-group "
1010 >
11- <div
12- class = " nhsuk-form-group"
13- >
14- <input
15- class = " nhsuk-input"
16- id = " test-input"
17- name = " test-input"
18- type = " text"
19- />
20- </div >
21- </fieldset >
22- </div >
11+ <input
12+ class = " nhsuk-input"
13+ id = " test-input"
14+ name = " test-input"
15+ type = " text"
16+ />
17+ </div >
18+ </fieldset >
2319</div >
2420` ;
Original file line number Diff line number Diff line change @@ -5,8 +5,6 @@ import HeadingLevel from '@components/utils/HeadingLevel';
55
66/**
77 * This component is designed as a grouping wrapper around one or more inputs on a form.
8- * Typically, a consumer would use the `Fieldset` component which uses `FormGroup`, but there
9- * may be occassions where the same `FormGroup` functionality may be desired without rendering a `<fieldset />` element.
108 *
119 * ## Usage
1210 *
You can’t perform that action at this time.
0 commit comments