This React component shows a simple email subscription form. It updates the input as you type, prevents page reload on submit, shows a thank you message, and clears the input.
import React from 'react';
export default function SimpleForm() {
const [email, setEmail] = React.useState('');
const [message, setMessage] = React.useState('');
function handleChange(event) {
setEmail(event.target.value);
}
function handleSubmit(event) {
event.preventDefault();
setMessage(`Thanks for submitting: ${email}`);
setEmail('');
}
return (
<main>
<h1>Subscribe to newsletter</h1>
<form onSubmit={handleSubmit} aria-label="Subscription form">
<label htmlFor="emailInput">Email:</label>
<input
id="emailInput"
type="email"
value={email}
onChange={handleChange}
required
aria-required="true"
aria-describedby="msg"
/>
<button type="submit">Subscribe</button>
</form>
<p id="msg" role="status" aria-live="polite">{message}</p>
</main>
);
}