@@ -61,19 +61,18 @@ import { DashboardWrapper } from '@patternfly/react-core/dist/js/demos/Dashboard
6161
6262type Validate = 'success' | 'warning' | 'error' | 'default' ;
6363const emailRegex = / ^ [ ^ @ ] + @ [ ^ @ ] + \. [ a - z A - Z ] + $ / i;
64- const nameRegex = / ^ [ a - z A - Z À - ÿ \u0100 - \u017F \u0180 - \u024F \s \- ' . ] { 2 , 50 } $ / i;
6564
6665export const TabsOpenDemo = ( ) => {
6766 const [ activeTabKey , setActiveTabKey ] = useState ( 0 ) ;
6867 const [ isNavOpen , setIsNavOpen ] = useState ( true ) ;
6968 const [ isDrawerOpen , setIsDrawerOpen ] = useState ( true ) ;
7069 const [ isOpenMap , setIsOpenMap ] = useState ( new Array ( 7 ) . fill ( false ) ) ;
71- const [ name , setName ] = useState ( '' ) ;
72- const [ validatedName , setValidatedName ] = useState < Validate > ( 'default' ) ;
73- const [ nameHelperText , setNameHelperText ] = useState ( 'Enter your name to continue' ) ;
7470 const [ email , setEmail ] = useState ( '' ) ;
71+ const [ name , setName ] = useState ( '' ) ;
72+ const [ description , setDescription ] = useState ( '' ) ;
7573 const [ validatedEmail , setValidatedEmail ] = useState < Validate > ( 'default' ) ;
7674 const [ emailHelperText , setEmailHelperText ] = useState ( 'Enter your email to continue' ) ;
75+ const [ isChecked , setIsChecked ] = useState ( true ) ;
7776
7877 const onToggle = ( index : number ) => ( ) => {
7978 const newState = [ ...isOpenMap . slice ( 0 , index ) , ! isOpenMap [ index ] , ...isOpenMap . slice ( index + 1 ) ] ;
@@ -112,28 +111,6 @@ export const TabsOpenDemo = () => {
112111 setActiveTabKey ( tabIndex ) ;
113112 } ;
114113
115- const [ isChecked , setIsChecked ] = useState ( true ) ;
116-
117- const validateEmail = ( ) => {
118- if ( ! emailRegex . test ( email ) ) {
119- setEmailHelperText ( 'Invalid email address' ) ;
120- setValidatedEmail ( 'error' ) ;
121- return ;
122- }
123- setEmailHelperText ( 'Valid email address' ) ;
124- setValidatedEmail ( 'success' ) ;
125- } ;
126-
127- const validateName = ( ) => {
128- if ( ! nameRegex . test ( name ) ) {
129- setNameHelperText ( 'Invalid name' ) ;
130- setValidatedName ( 'error' ) ;
131- return ;
132- }
133- setNameHelperText ( 'Valid name' ) ;
134- setValidatedName ( 'success' ) ;
135- } ;
136-
137114 const handleEmailChange = ( _event , newEmail : string ) => {
138115 setEmail ( newEmail ) ;
139116 } ;
@@ -142,21 +119,29 @@ export const TabsOpenDemo = () => {
142119 setName ( newName ) ;
143120 } ;
144121
122+ const handleDescriptionChange = ( _event , newDesc : string ) => {
123+ setDescription ( newDesc ) ;
124+ } ;
125+
126+ const invalidateEmail = ( ) => {
127+ setEmailHelperText ( 'Invalid email address' ) ;
128+ setValidatedEmail ( 'error' ) ;
129+ } ;
130+
145131 const resetForm = ( ) => {
146- setName ( '' ) ;
147132 setEmail ( '' ) ;
148- setValidatedName ( 'default' ) ;
133+ setName ( '' ) ;
134+ setDescription ( '' ) ;
135+ setIsChecked ( false ) ;
149136 setValidatedEmail ( 'default' ) ;
150- setNameHelperText ( 'Enter your name to continue' ) ;
151137 setEmailHelperText ( 'Enter your email to continue' ) ;
152138 } ;
153139
154140 const handleSubmit = ( _event ) => {
155- if ( emailRegex . test ( email ) && nameRegex . test ( name ) ) {
141+ if ( emailRegex . test ( email ) ) {
156142 resetForm ( ) ;
157143 } else {
158- validateEmail ( ) ;
159- validateName ( ) ;
144+ invalidateEmail ( ) ;
160145 }
161146 } ;
162147
@@ -165,15 +150,9 @@ export const TabsOpenDemo = () => {
165150 } ;
166151
167152 const generateAlertContent = ( ) => {
168- if ( validatedEmail === 'error' && validatedName === 'error' ) {
169- return 'Please provide a valid name and email address' ;
170- }
171153 if ( validatedEmail === 'error' ) {
172154 return 'Please provide a valid email address' ;
173155 }
174- if ( validatedName === 'error' ) {
175- return 'Please provide a valid name' ;
176- }
177156 } ;
178157
179158 const pageForm = (
@@ -187,18 +166,7 @@ export const TabsOpenDemo = () => {
187166 name = "horizontal-form-name"
188167 value = { name }
189168 onChange = { handleNameChange }
190- validated = { validatedName }
191169 />
192- < FormHelperText >
193- < HelperText >
194- < HelperTextItem
195- variant = { validatedName }
196- { ...( validatedName === 'error' && { icon : < ExclamationCircleIcon /> } ) }
197- >
198- { nameHelperText }
199- </ HelperTextItem >
200- </ HelperText >
201- </ FormHelperText >
202170 </ FormGroup >
203171 < FormGroup label = "Email" isRequired fieldId = "horizontal-form-email" >
204172 < TextInput
@@ -245,7 +213,7 @@ export const TabsOpenDemo = () => {
245213 isRequired
246214 labelHelp = { < FormGroupLabelHelp aria-label = "" /> }
247215 >
248- < TextArea autoResize />
216+ < TextArea autoResize value = { description } onChange = { handleDescriptionChange } />
249217 </ FormGroup >
250218 < ActionGroup >
251219 < Button variant = "primary" onClick = { handleSubmit } >
@@ -680,7 +648,7 @@ export const TabsOpenDemo = () => {
680648 < PageSection isWidthLimited padding = { { default : 'noPadding' } } >
681649 < TabContent key = { 0 } eventKey = { 0 } id = { `tabContent${ 0 } ` } activeKey = { activeTabKey } hidden = { 0 !== activeTabKey } >
682650 < PageSection >
683- { ( validatedEmail === 'error' || validatedName === 'error' ) && (
651+ { validatedEmail === 'error' && (
684652 < Alert isInline variant = "danger" title = { generateAlertContent ( ) } ouiaId = "DangerAlert" />
685653 ) }
686654 </ PageSection >
0 commit comments