diff --git a/src/routes/console/project-[project]/auth/templates/+page.svelte b/src/routes/console/project-[project]/auth/templates/+page.svelte
index cc16b21e4..1beae6bcf 100644
--- a/src/routes/console/project-[project]/auth/templates/+page.svelte
+++ b/src/routes/console/project-[project]/auth/templates/+page.svelte
@@ -6,22 +6,43 @@
import { Container } from '$lib/layout';
import { sdk } from '$lib/stores/sdk';
import { project } from '../../store';
- import EmailTemplate from './emailTemplate.svelte';
- import SmsTemplate from './smsTemplate.svelte';
import { addNotification } from '$lib/stores/notifications';
import { onMount } from 'svelte';
+ import type { PageData } from './$types';
+ import EmailVerificationTemplate from './emailVerificationTemplate.svelte';
+ import EmailMagicUrlTemplate from './emailMagicUrlTemplate.svelte';
+ import EmailRecoveryTemplate from './emailRecoveryTemplate.svelte';
+ import EmailInviteTemplate from './emailInviteTemplate.svelte';
+ 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;
+ }
+ | any = {};
- let template: any;
onMount(() => {
- loadEmailTemplate('verification', 'en_us');
+ loadEmailTemplate('verification', 'en-us');
+ loadEmailTemplate('magicSession', 'en-us');
+ loadEmailTemplate('recovery', 'en-us');
+ loadEmailTemplate('invitation', 'en-us');
});
async function loadEmailTemplate(type: string, locale: string) {
const path = '/projects/' + projectId + '/templates/email/' + type + '/' + locale;
try {
- template = await sdk.forConsole.client.call(
+ emailTemplates[type] = await sdk.forConsole.client.call(
'GET',
new URL(sdk.forConsole.client.config.endpoint + path)
);
@@ -34,10 +55,11 @@
}
async function saveEmailTemplate(type: string, data: any) {
+ console.log(data);
const path = '/projects/' + projectId + '/templates/email/' + type + '/' + data.locale;
try {
- template = await sdk.forConsole.client.call(
+ emailTemplates[type] = await sdk.forConsole.client.call(
'PATCH',
new URL(sdk.forConsole.client.config.endpoint + path),
{ 'content-type': 'application/json' },
@@ -100,21 +122,35 @@
Send a verification email to users that sign in with their email and
password.
- saveEmailTemplate('verification', data)} />
+
Magic URL
- saveEmailTemplate('verification', data)} />
+
Reset Password
-
+
Invite User
-
+
@@ -137,11 +173,11 @@
Send a verification SMS to users that sign in with their phone
-
+
Login
-
+
diff --git a/src/routes/console/project-[project]/auth/templates/+page.ts b/src/routes/console/project-[project]/auth/templates/+page.ts
new file mode 100644
index 000000000..ba12ccdb9
--- /dev/null
+++ b/src/routes/console/project-[project]/auth/templates/+page.ts
@@ -0,0 +1,17 @@
+import { sdk } from '$lib/stores/sdk';
+import type { PageLoad } from './$types';
+
+export const load: PageLoad = async () => {
+ let codes = { localeCodes: [] };
+ try {
+ codes = await sdk.forProject.client.call(
+ 'GET',
+ new URL(sdk.forProject.client.config.endpoint + '/locale/codes')
+ );
+ } catch (e) {
+ console.log(e);
+ }
+ return {
+ localeCodes: codes.localeCodes
+ };
+};
diff --git a/src/routes/console/project-[project]/auth/templates/emailInviteTemplate.svelte b/src/routes/console/project-[project]/auth/templates/emailInviteTemplate.svelte
new file mode 100644
index 000000000..29f6e45bd
--- /dev/null
+++ b/src/routes/console/project-[project]/auth/templates/emailInviteTemplate.svelte
@@ -0,0 +1,38 @@
+
+
+
+
+ saveEmailTemplate('invitation', { ...data, locale })} />
+
diff --git a/src/routes/console/project-[project]/auth/templates/emailMagicUrlTemplate.svelte b/src/routes/console/project-[project]/auth/templates/emailMagicUrlTemplate.svelte
new file mode 100644
index 000000000..62fc23745
--- /dev/null
+++ b/src/routes/console/project-[project]/auth/templates/emailMagicUrlTemplate.svelte
@@ -0,0 +1,37 @@
+
+
+
+
+ saveEmailTemplate('magicSession', { ...data, locale })} />
+
diff --git a/src/routes/console/project-[project]/auth/templates/emailRecoveryTemplate.svelte b/src/routes/console/project-[project]/auth/templates/emailRecoveryTemplate.svelte
new file mode 100644
index 000000000..993a1a51c
--- /dev/null
+++ b/src/routes/console/project-[project]/auth/templates/emailRecoveryTemplate.svelte
@@ -0,0 +1,38 @@
+
+
+
+
+ saveEmailTemplate('recovery', { ...data, locale })} />
+
diff --git a/src/routes/console/project-[project]/auth/templates/emailTemplate.svelte b/src/routes/console/project-[project]/auth/templates/emailTemplate.svelte
index f2e143e77..9fd9b2f4f 100644
--- a/src/routes/console/project-[project]/auth/templates/emailTemplate.svelte
+++ b/src/routes/console/project-[project]/auth/templates/emailTemplate.svelte
@@ -1,5 +1,4 @@
-
-
-
+
diff --git a/src/routes/console/project-[project]/auth/templates/emailVerificationTemplate.svelte b/src/routes/console/project-[project]/auth/templates/emailVerificationTemplate.svelte
new file mode 100644
index 000000000..b9384afc9
--- /dev/null
+++ b/src/routes/console/project-[project]/auth/templates/emailVerificationTemplate.svelte
@@ -0,0 +1,38 @@
+
+
+
+
+ saveEmailTemplate('verification', { ...data, locale })} />
+
diff --git a/src/routes/console/project-[project]/auth/templates/localeOptions.svelte b/src/routes/console/project-[project]/auth/templates/localeOptions.svelte
index 66f1b7c90..0a5395aa9 100644
--- a/src/routes/console/project-[project]/auth/templates/localeOptions.svelte
+++ b/src/routes/console/project-[project]/auth/templates/localeOptions.svelte
@@ -1,14 +1,17 @@
({
+ label: code.name,
+ value: code.code
+ }))
]} />