Skip to content

Commit 7abf36c

Browse files
authored
Merge pull request #2660 from ankaboot-source/feat/campaign-batch-ui-improvement
fix: use PrimeVue pi-sign-out icon instead of Material Symbols
2 parents c874ded + e5f5523 commit 7abf36c

File tree

3 files changed

+24
-6
lines changed

3 files changed

+24
-6
lines changed

frontend/src/i18n/messages.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@
154154
},
155155
"unsubscribe": {
156156
"success_header": "You have been unsubscribed",
157-
"success_message": "You will no longer receive emails from us.",
157+
"success_message": "You will no longer receive emails from {sender}.",
158158
"preview_notice": "This is a preview - the link is active in the actual email",
159159
"failure_header": "Unsubscribe failed",
160160
"failure_message": "We couldn't find your subscription. Please contact support.",
@@ -316,7 +316,7 @@
316316
},
317317
"unsubscribe": {
318318
"success_header": "Vous êtes désabonné",
319-
"success_message": "Vous ne recevrez plus d'emails de notre part.",
319+
"success_message": "Vous ne recevrez plus d'emails de {sender}.",
320320
"preview_notice": "Ceci est un aperçu - le lien est actif dans l'email réel",
321321
"failure_header": "Désabonnement échoué",
322322
"failure_message": "Nous n'avons pas trouvé votre abonnement. Veuillez contacter le support.",

frontend/src/pages/unsubscribe/success.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</div>
1111
<div>
1212
<p>
13-
{{ $t('unsubscribe.success_message') }}
13+
{{ $t('unsubscribe.success_message', { sender: senderEmail }) }}
1414
</p>
1515
</div>
1616
<div v-if="isPreview" class="bg-blue-50 border border-blue-200 rounded p-4">
@@ -24,4 +24,5 @@
2424
<script setup lang="ts">
2525
const $route = useRoute();
2626
const isPreview = Boolean($route.query.preview);
27+
const senderEmail = $route.query.sender as string | undefined;
2728
</script>

supabase/functions/email-campaigns/index.ts

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2052,14 +2052,31 @@ app.get("/unsubscribe/:token", async (c: Context) => {
20522052
event_type: "unsubscribe",
20532053
});
20542054

2055+
let senderEmail = "";
2056+
try {
2057+
const { data: profile } = await supabaseAdmin
2058+
.schema("private")
2059+
.from("profiles")
2060+
.select("email")
2061+
.eq("user_id", recipient.user_id)
2062+
.maybeSingle();
2063+
senderEmail = profile?.email || "";
2064+
} catch (e) {
2065+
console.error("Failed to fetch sender email:", e);
2066+
}
2067+
2068+
const successUrl = senderEmail
2069+
? `${FRONTEND_HOST}/unsubscribe/success?sender=${encodeURIComponent(senderEmail)}`
2070+
: `${FRONTEND_HOST}/unsubscribe/success`;
2071+
20552072
return new Response(null, {
20562073
status: 302,
20572074
headers: {
20582075
...corsHeaders,
2059-
Location: `${FRONTEND_HOST}/unsubscribe/success`,
2076+
Location: success });
2077+
});Url,
20602078
},
2061-
});
2062-
});
2079+
20632080

20642081
app.get("/track/open/:token", async (c: Context) => {
20652082
const token = c.req.param("token");

0 commit comments

Comments
 (0)