Skip to content

Commit d25f865

Browse files
committed
fix: add /c/, /o/, /u/ pages for email tracking links
1 parent b481a50 commit d25f865

File tree

3 files changed

+15
-18
lines changed

3 files changed

+15
-18
lines changed

frontend/src/pages/c/[token].vue

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,11 @@ const config = useRuntimeConfig();
99
1010
const edgeFunctionUrl = `${config.public.SAAS_SUPABASE_PROJECT_URL}/functions/v1/email-campaigns`;
1111
12-
await navigateTo(`${edgeFunctionUrl}/track/click/${token}`, {
13-
external: true,
14-
redirectCode: 302,
15-
});
12+
await navigateTo(
13+
`${edgeFunctionUrl}/track/click/${encodeURIComponent(token)}`,
14+
{
15+
external: true,
16+
redirectCode: 302,
17+
},
18+
);
1619
</script>

frontend/src/pages/o/[token].vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const config = useRuntimeConfig();
99
1010
const edgeFunctionUrl = `${config.public.SAAS_SUPABASE_PROJECT_URL}/functions/v1/email-campaigns`;
1111
12-
await navigateTo(`${edgeFunctionUrl}/track/open/${token}`, {
12+
await navigateTo(`${edgeFunctionUrl}/track/open/${encodeURIComponent(token)}`, {
1313
external: true,
1414
redirectCode: 302,
1515
});

frontend/src/pages/u/[token].vue

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,13 @@
66
const $route = useRoute();
77
const token = $route.params.token as string;
88
const sender = $route.query.sender as string | undefined;
9+
const config = useRuntimeConfig();
910
10-
const previewModes = ['preview-unsubscribe', 'preview-open', 'preview-click'];
11+
const edgeFunctionUrl = `${config.public.SAAS_SUPABASE_PROJECT_URL}/functions/v1/email-campaigns`;
12+
const targetUrl = `${edgeFunctionUrl}/unsubscribe/${encodeURIComponent(token)}${sender ? `?sender=${encodeURIComponent(sender)}` : ''}`;
1113
12-
if (previewModes.includes(token)) {
13-
await navigateTo(`/unsubscribe/success?preview=true`, { external: true });
14-
} else if (sender) {
15-
await navigateTo(
16-
`/unsubscribe/success?sender=${encodeURIComponent(sender)}`,
17-
{
18-
external: true,
19-
},
20-
);
21-
} else {
22-
await navigateTo(`/unsubscribe/success`, { external: true });
23-
}
14+
await navigateTo(targetUrl, {
15+
external: true,
16+
redirectCode: 302,
17+
});
2418
</script>

0 commit comments

Comments
 (0)