upstream #1
@ -4,6 +4,7 @@ import siteMetadata from '@/data/siteMetadata'
|
|||||||
|
|
||||||
const FormSubscribe = () => {
|
const FormSubscribe = () => {
|
||||||
const inputEl = useRef(null)
|
const inputEl = useRef(null)
|
||||||
|
const [error, setError] = useState(false)
|
||||||
const [message, setMessage] = useState('')
|
const [message, setMessage] = useState('')
|
||||||
const [subscribed, setSubscribed] = useState(false)
|
const [subscribed, setSubscribed] = useState(false)
|
||||||
|
|
||||||
@ -22,11 +23,13 @@ const FormSubscribe = () => {
|
|||||||
|
|
||||||
const { error } = await res.json()
|
const { error } = await res.json()
|
||||||
if (error) {
|
if (error) {
|
||||||
|
setError(true)
|
||||||
setMessage('Your e-mail adress is invalid or you are already subscribed!')
|
setMessage('Your e-mail adress is invalid or you are already subscribed!')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
inputEl.current.value = ''
|
inputEl.current.value = ''
|
||||||
|
setError(false)
|
||||||
setSubscribed(true)
|
setSubscribed(true)
|
||||||
setMessage('Successfully! 🎉 You are now subscribed.')
|
setMessage('Successfully! 🎉 You are now subscribed.')
|
||||||
}
|
}
|
||||||
@ -43,7 +46,7 @@ const FormSubscribe = () => {
|
|||||||
</label>
|
</label>
|
||||||
<input
|
<input
|
||||||
autoComplete="email"
|
autoComplete="email"
|
||||||
className="px-4 py-2 placeholder-gray-500 bg-white border rounded-md appearance-none w-72 border-neutrals-cool-grey-300 text-neutrals-cool-grey-900 dark:bg-black focus:outline-none focus:ring-primary-400 dark:focus:border-primary-600"
|
className="px-4 rounded-md w-72 dark:bg-black focus:outline-none focus:ring-2 focus:border-transparent focus:ring-primary-600"
|
||||||
id="email-input"
|
id="email-input"
|
||||||
name="email"
|
name="email"
|
||||||
placeholder={subscribed ? "You're subscribed ! 🎉" : 'Enter your email'}
|
placeholder={subscribed ? "You're subscribed ! 🎉" : 'Enter your email'}
|
||||||
@ -55,9 +58,9 @@ const FormSubscribe = () => {
|
|||||||
</div>
|
</div>
|
||||||
<div className="flex w-full mt-2 rounded-md shadow-sm sm:mt-0 sm:ml-3">
|
<div className="flex w-full mt-2 rounded-md shadow-sm sm:mt-0 sm:ml-3">
|
||||||
<button
|
<button
|
||||||
className={`w-full bg-primary-500 dark:bg-primary-500 px-4 py-2 border border-transparent rounded-md font-medium text-white ${
|
className={`w-full bg-primary-500 px-4 py-2 rounded-md font-medium text-white ${
|
||||||
subscribed ? 'cursor-default' : 'hover:bg-primary-700 dark:hover:bg-primary-400'
|
subscribed ? 'cursor-default' : 'hover:bg-primary-700 dark:hover:bg-primary-400'
|
||||||
} focus:outline-none focus:ring-2 focus:ring-offset-2 focus:primary-700`}
|
} focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-600 dark:ring-offset-black`}
|
||||||
type="submit"
|
type="submit"
|
||||||
disabled={subscribed}
|
disabled={subscribed}
|
||||||
>
|
>
|
||||||
@ -65,6 +68,9 @@ const FormSubscribe = () => {
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
{error && (
|
||||||
|
<p className="pt-2 text-sm text-red-500 w-72 sm:w-96 dark:text-red-400">{message}</p>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user