diff --git a/src/routes/(console)/project-[region]-[project]/auth/templates/emailTemplate.svelte b/src/routes/(console)/project-[region]-[project]/auth/templates/emailTemplate.svelte index 68e30d8b2..d2eafa500 100644 --- a/src/routes/(console)/project-[region]-[project]/auth/templates/emailTemplate.svelte +++ b/src/routes/(console)/project-[region]-[project]/auth/templates/emailTemplate.svelte @@ -63,10 +63,10 @@ locale, subject: $emailTemplate.subject || undefined, message: $emailTemplate.message || undefined, - senderName: $emailTemplate.senderName || undefined, - senderEmail: $emailTemplate.senderEmail || undefined, - replyToEmail: $emailTemplate.replyToEmail || undefined, - replyToName: $emailTemplate.replyToName || undefined + senderName: $emailTemplate.senderName ?? undefined, + senderEmail: $emailTemplate.senderEmail ?? undefined, + replyToEmail: $emailTemplate.replyToEmail ?? undefined, + replyToName: $emailTemplate.replyToName ?? undefined }); $baseEmailTemplate = { @@ -114,13 +114,15 @@ bind:value={$emailTemplate.replyToEmail} id="replyToEmail" label="Reply to email" - placeholder="noreply@appwrite.io" /> + placeholder="noreply@appwrite.io" + disabled={!isSmtpEnabled} /> + placeholder="Enter reply to name" + disabled={!isSmtpEnabled} /> {#if children}

diff --git a/src/routes/(console)/project-[region]-[project]/settings/smtp/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/smtp/+page.svelte index 68bb18c00..6c48a2ce7 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/smtp/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/smtp/+page.svelte @@ -21,7 +21,7 @@ const { data }: PageProps = $props(); - const { project } = data; + const project = $derived(data.project); let enabled: boolean = $state(false); @@ -44,31 +44,35 @@ { value: '', label: 'None' } ]; + function normalizeSecure(v: string): string { + return v === 'tls' || v === 'ssl' ? v : ''; + } + const isButtonDisabled = $derived.by(() => { return deepEqual( { enabled, - senderName, - senderEmail, - replyToEmail, - replyToName, - host, - port: port ?? '', - username, - password, + senderName: senderName ?? '', + senderEmail: senderEmail ?? '', + replyToEmail: replyToEmail ?? '', + replyToName: replyToName ?? '', + host: host ?? '', + port: port ?? null, + username: username ?? '', + password: password ?? '', secure }, { - enabled: project.smtpEnabled, - senderName: project.smtpSenderName, - senderEmail: project.smtpSenderEmail, - replyToEmail: project.smtpReplyToEmail, - replyToName: project.smtpReplyToName, - host: project.smtpHost, - port: project.smtpPort, - username: project.smtpUsername, - password: project.smtpPassword, - secure: project.smtpSecure + enabled: project.smtpEnabled ?? false, + senderName: project.smtpSenderName ?? '', + senderEmail: project.smtpSenderEmail ?? '', + replyToEmail: project.smtpReplyToEmail ?? '', + replyToName: project.smtpReplyToName ?? '', + host: project.smtpHost ?? '', + port: project.smtpPort ?? null, + username: project.smtpUsername ?? '', + password: project.smtpPassword ?? '', + secure: normalizeSecure(project.smtpSecure ?? '') } ); }); @@ -77,14 +81,14 @@ try { await sdk.forProject(project.region, project.$id).project.updateSMTP({ enabled, - senderName: senderName || undefined, - senderEmail: senderEmail || undefined, - replyToEmail: replyToEmail || undefined, - replyToName: replyToName || undefined, - host: host || undefined, - port: port || undefined, - username: username || undefined, - password: password || undefined, + senderName: senderName ?? undefined, + senderEmail: senderEmail ?? undefined, + replyToEmail: replyToEmail ?? undefined, + replyToName: replyToName ?? undefined, + host: host ?? undefined, + port: port ?? undefined, + username: username ?? undefined, + password: password ?? undefined, secure: secure ? (secure as ProjectSMTPSecure) : undefined }); @@ -105,29 +109,15 @@ $effect(() => { enabled = project.smtpEnabled ?? false; - senderName = project.smtpSenderName; - senderEmail = project.smtpSenderEmail; - replyToEmail = project.smtpReplyToEmail; - replyToName = project.smtpReplyToName; - host = project.smtpHost; - port = project.smtpPort; - username = project.smtpUsername; - password = project.smtpPassword; - secure = project.smtpSecure === 'tls' ? 'tls' : project.smtpSecure === 'ssl' ? 'ssl' : ''; - }); - - $effect(() => { - if (!enabled) { - senderName = ''; - senderEmail = ''; - replyToEmail = ''; - replyToName = ''; - host = ''; - port = null; - username = ''; - password = ''; - secure = ''; - } + senderName = project.smtpSenderName ?? ''; + senderEmail = project.smtpSenderEmail ?? ''; + replyToEmail = project.smtpReplyToEmail ?? ''; + replyToName = project.smtpReplyToName ?? ''; + host = project.smtpHost ?? ''; + port = project.smtpPort ?? null; + username = project.smtpUsername ?? ''; + password = project.smtpPassword ?? ''; + secure = normalizeSecure(project.smtpSecure ?? ''); });