diff --git a/src/routes/console/project-[project]/auth/templates/+page.svelte b/src/routes/console/project-[project]/auth/templates/+page.svelte index b73ec2c80..f1c90f159 100644 --- a/src/routes/console/project-[project]/auth/templates/+page.svelte +++ b/src/routes/console/project-[project]/auth/templates/+page.svelte @@ -13,24 +13,29 @@ import EmailMagicUrlTemplate from './emailMagicUrlTemplate.svelte'; import EmailRecoveryTemplate from './emailRecoveryTemplate.svelte'; import EmailInviteTemplate from './emailInviteTemplate.svelte'; + import SmsVerificationTemplate from './smsVerificationTemplate.svelte'; + import SmsLoginTemplate from './smsLoginTemplate.svelte'; + import type { Models } from '@appwrite.io/console'; export let data: PageData; const projectId = $page.params.project; - interface EmailTemplate { - senderName: string; - senderEmail: string; - locale: string; - subject: string; - message: string; - } + let emailTemplates: | { - verification: EmailTemplate; - magicSession: EmailTemplate; - recovery: EmailTemplate; - invitation: EmailTemplate; + verification: Models.EmailTemplate; + magicSession: Models.EmailTemplate; + recovery: Models.EmailTemplate; + invitation: Models.EmailTemplate; } | any = {}; + let smsTemplates: + | { + verification: Models.SmsTemplate; + login: Models.SmsTemplate; + invitation: Models.SmsTemplate; + } + | any = {}; + let emailVerificationOpen = true; let emailMagicSessionOpen = false; let emailOpen = 'verification'; @@ -42,6 +47,9 @@ loadEmailTemplate('magicSession', 'en-us'); loadEmailTemplate('recovery', 'en-us'); loadEmailTemplate('invitation', 'en-us'); + loadSmsTemplate('verification', 'en-us'); + loadSmsTemplate('login', 'en-us'); + loadSmsTemplate('invitation', 'en-us'); }); async function loadEmailTemplate(type: string, locale: string) { try { @@ -57,6 +65,20 @@ }); } } + async function loadSmsTemplate(type: string, locale: string) { + try { + smsTemplates[type] = await sdk.forConsole.projects.getSmsTemplate( + projectId, + type, + locale + ); + } catch (e) { + addNotification({ + type: 'error', + message: e.message + }); + } + } async function saveEmailTemplate(type: string, data: any) { if (!data.locale) { @@ -88,6 +110,33 @@ }); } } + + async function saveSmsTemplate(type: string, data: any) { + if (!data.locale) { + addNotification({ + type: 'error', + message: 'Locale is required' + }); + return; + } + try { + emailTemplates[type] = await sdk.forConsole.projects.updateSmsTemplate( + projectId, + type, + data.locale, + data.message + ); + addNotification({ + type: 'success', + message: `SMS ${type} template for ${data.locale} updated` + }); + } catch (e) { + addNotification({ + type: 'error', + message: e.message + }); + } + } @@ -189,11 +238,27 @@

Send a verification SMS to users that sign in with their phone

- + Login - + + + + Invitation + diff --git a/src/routes/console/project-[project]/auth/templates/editMessage.svelte b/src/routes/console/project-[project]/auth/templates/editMessage.svelte index bda9a7555..bfb61f467 100644 --- a/src/routes/console/project-[project]/auth/templates/editMessage.svelte +++ b/src/routes/console/project-[project]/auth/templates/editMessage.svelte @@ -1,16 +1,7 @@
@@ -45,8 +49,11 @@ placeholder="Enter your message" readonly on:click={() => (showEdit = true)} /> - +
+ + +
diff --git a/src/routes/console/project-[project]/auth/templates/smsInvitationTemplate.svelte b/src/routes/console/project-[project]/auth/templates/smsInvitationTemplate.svelte new file mode 100644 index 000000000..2f9423eab --- /dev/null +++ b/src/routes/console/project-[project]/auth/templates/smsInvitationTemplate.svelte @@ -0,0 +1,29 @@ + + +
+ + saveSmsTemplate('login', { ...data, locale })} /> +
diff --git a/src/routes/console/project-[project]/auth/templates/smsLoginTemplate.svelte b/src/routes/console/project-[project]/auth/templates/smsLoginTemplate.svelte new file mode 100644 index 000000000..2f9423eab --- /dev/null +++ b/src/routes/console/project-[project]/auth/templates/smsLoginTemplate.svelte @@ -0,0 +1,29 @@ + + +
+ + saveSmsTemplate('login', { ...data, locale })} /> +
diff --git a/src/routes/console/project-[project]/auth/templates/smsTemplate.svelte b/src/routes/console/project-[project]/auth/templates/smsTemplate.svelte index 688bbae44..3f5e2e30a 100644 --- a/src/routes/console/project-[project]/auth/templates/smsTemplate.svelte +++ b/src/routes/console/project-[project]/auth/templates/smsTemplate.svelte @@ -1,13 +1,26 @@ - -
- - - -
-
+
+ + + +
+ + +
+
diff --git a/src/routes/console/project-[project]/auth/templates/smsVerificationTemplate.svelte b/src/routes/console/project-[project]/auth/templates/smsVerificationTemplate.svelte new file mode 100644 index 000000000..3edf2e9b3 --- /dev/null +++ b/src/routes/console/project-[project]/auth/templates/smsVerificationTemplate.svelte @@ -0,0 +1,29 @@ + + +
+ + saveSmsTemplate('verification', { ...data, locale })} /> +