11import { useState } from 'react' ;
22import { decode } from 'html-entities' ;
3- import newsletterStyles from " ../../styles/Newsletter.module.scss" ;
3+ import newsletterStyles from ' ../../styles/Newsletter.module.scss' ;
44
5- const NewsletterForm = ( { status, message, onValidated } ) => {
6-
7- const [ error , setError ] = useState ( null ) ;
8- const [ email , setEmail ] = useState ( null ) ;
5+ const NewsletterForm = ( { status, message, onValidated } ) => {
6+ const [ error , setError ] = useState ( null ) ;
7+ const [ email , setEmail ] = useState ( null ) ;
98
109 /**
1110 * Handle form submit.
1211 *
1312 * @return {{value}|*|boolean|null }
1413 */
1514 const handleFormSubmit = ( ) => {
16-
1715 setError ( null ) ;
1816
19- if ( ! email ) {
20- setError ( 'Please enter a valid email address' ) ;
17+ if ( ! email ) {
18+ setError ( 'Please enter a valid email address' ) ;
2119 return null ;
2220 }
2321
2422 const isFormValidated = onValidated ( { EMAIL : email } ) ;
2523
2624 // On success return true
27- return email && email . indexOf ( "@" ) > - 1 && isFormValidated ;
28- }
25+ return email && email . indexOf ( '@' ) > - 1 && isFormValidated ;
26+ } ;
2927
3028 /**
3129 * Handle Input Key Event.
3230 *
3331 * @param event
3432 */
35- const handleInputKeyEvent = ( event ) => {
33+ const handleInputKeyEvent = event => {
3634 setError ( null ) ;
3735 // Number 13 is the "Enter" key on the keyboard
3836 if ( event . keyCode === 13 ) {
@@ -41,53 +39,58 @@ const NewsletterForm = ( { status, message, onValidated }) => {
4139 // Trigger the button element with a click
4240 handleFormSubmit ( ) ;
4341 }
44- }
42+ } ;
4543
4644 /**
4745 * Extract message from string.
4846 *
4947 * @param {String } message
5048 * @return {null|* }
5149 */
52- const getMessage = ( message ) => {
53- if ( ! message ) {
50+ const getMessage = message => {
51+ if ( ! message ) {
5452 return null ;
5553 }
5654 const result = message ?. split ( '-' ) ?? null ;
57- if ( "0" !== result ?. [ 0 ] ?. trim ( ) ) {
55+ if ( '0' !== result ?. [ 0 ] ?. trim ( ) ) {
5856 return decode ( message ) ;
5957 }
6058 const formattedMessage = result ?. [ 1 ] ?. trim ( ) ?? null ;
61- return formattedMessage ? decode ( formattedMessage ) : null ;
62- }
59+ return formattedMessage ? decode ( formattedMessage ) : null ;
60+ } ;
6361
6462 return (
6563 < >
6664 < div >
6765 < input
68- onChange = { ( event ) => setEmail ( event ?. target ?. value ?? '' ) }
66+ onChange = { event => setEmail ( event ?. target ?. value ?? '' ) }
6967 type = "email"
7068 placeholder = "Your email"
71- onKeyUp = { ( event ) => handleInputKeyEvent ( event ) }
69+ onKeyUp = { event => handleInputKeyEvent ( event ) }
7270 />
73- < button onClick = { handleFormSubmit } >
74- Submit
75- </ button >
71+ < button onClick = { handleFormSubmit } > Submit</ button >
7672 </ div >
77- < div className = { newsletterStyles . newsletterFormInfo } >
78- { status === "sending" && < div className = { newsletterStyles . newsletterFormSending } > Sending...</ div > }
79- { status === "error" || error ? (
73+ < div className = { newsletterStyles . newsletterFormInfo } >
74+ { status === 'sending' && (
75+ < div className = { newsletterStyles . newsletterFormSending } >
76+ Sending...
77+ </ div >
78+ ) }
79+ { status === 'error' || error ? (
80+ < div
81+ className = { newsletterStyles . newsletterFormError }
82+ dangerouslySetInnerHTML = { { __html : error || getMessage ( message ) } }
83+ />
84+ ) : null }
85+ { status === 'success' && status !== 'error' && ! error && (
8086 < div
81- className = { newsletterStyles . newsletterFormError }
82- dangerouslySetInnerHTML = { { __html : error || getMessage ( message ) } }
87+ className = { newsletterStyles . newsletterFormSuccess }
88+ dangerouslySetInnerHTML = { { __html : decode ( message ) } }
8389 />
84- ) : null }
85- { status === "success" && status !== "error" && ! error && (
86- < div className = { newsletterStyles . newsletterFormSuccess } dangerouslySetInnerHTML = { { __html : decode ( message ) } } />
8790 ) }
8891 </ div >
8992 </ >
9093 ) ;
91- }
94+ } ;
9295
9396export default NewsletterForm ;
0 commit comments