Fix newsletter form subscription
This commit is contained in:
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { enhance } from '$app/forms'
|
import { enhance } from '$app/forms'
|
||||||
|
import { dev } from '$app/environment'
|
||||||
import { fly } from 'svelte/transition'
|
import { fly } from 'svelte/transition'
|
||||||
import { quartOut } from 'svelte/easing'
|
import { quartOut } from 'svelte/easing'
|
||||||
import { sendEvent } from '$utils/analytics'
|
import { sendEvent } from '$utils/analytics'
|
||||||
@@ -13,7 +14,6 @@
|
|||||||
|
|
||||||
export let past: boolean = false
|
export let past: boolean = false
|
||||||
|
|
||||||
|
|
||||||
let inputInFocus = false
|
let inputInFocus = false
|
||||||
let formStatus: { error: string, success: boolean, message: string } = null
|
let formStatus: { error: string, success: boolean, message: string } = null
|
||||||
let formMessageTimeout: ReturnType<typeof setTimeout> | number
|
let formMessageTimeout: ReturnType<typeof setTimeout> | number
|
||||||
@@ -27,7 +27,10 @@
|
|||||||
const handleForm = () => {
|
const handleForm = () => {
|
||||||
return async ({ result, update }) => {
|
return async ({ result, update }) => {
|
||||||
formStatus = result.data
|
formStatus = result.data
|
||||||
console.log(result.data)
|
|
||||||
|
if (dev) {
|
||||||
|
console.log(result.data)
|
||||||
|
}
|
||||||
|
|
||||||
// If successful
|
// If successful
|
||||||
if (result.data.success) {
|
if (result.data.success) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { invalid } from '@sveltejs/kit'
|
|
||||||
import { NEWSLETTER_API_TOKEN, NEWSLETTER_LIST_ID } from '$env/static/private'
|
import { NEWSLETTER_API_TOKEN, NEWSLETTER_LIST_ID } from '$env/static/private'
|
||||||
|
import { fail } from '@sveltejs/kit'
|
||||||
|
|
||||||
const formMessages = {
|
const formMessages = {
|
||||||
PENDING: `Almost there! Please confirm your email address through the email you'll receive soon.`,
|
PENDING: `Almost there! Please confirm your email address through the email you'll receive soon.`,
|
||||||
@@ -28,14 +28,14 @@ export default async ({ request }) => {
|
|||||||
if (res && res.status !== 'PENDING') {
|
if (res && res.status !== 'PENDING') {
|
||||||
// Invalid email
|
// Invalid email
|
||||||
if (!email.match(/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/)) {
|
if (!email.match(/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/)) {
|
||||||
return invalid(400, {
|
return fail(400, {
|
||||||
error: 'INVALID_EMAIL',
|
error: 'INVALID_EMAIL',
|
||||||
message () { return formMessages[this.error] }
|
message () { return formMessages[this.error] }
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Other error
|
// Other error
|
||||||
return invalid(400, {
|
return fail(400, {
|
||||||
error: res.error.code,
|
error: res.error.code,
|
||||||
message: formMessages[res.error.code],
|
message: formMessages[res.error.code],
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user