functions

This commit is contained in:
Thomas Demirdjian
2025-11-03 13:47:07 +01:00
parent 460c91f1e6
commit 7b3a47090d
16 changed files with 23868 additions and 2399 deletions
+85 -37
View File
@@ -13,49 +13,97 @@ function basicTemplate({ title = "", content = "", button = null }) {
button?.label || "Ouvrir"
}</a></p>`
: "";
return `<!doctype html><html><body style="font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;color:#111">
<div style="max-width:640px;margin:40px auto;padding:24px;border:1px solid #eee;border-radius:12px">
<div style="text-align:center;margin-bottom:20px">
<img src="${musicLandLogoSrc}" alt="MusicLand" style="height:40px" />
</div>
<h2 style="margin:0 0 16px">${title}</h2>
<div>${content}</div>
${btn}
<hr style="margin:24px 0;border:none;border-top:1px solid #eee" />
<p style="color:#666;font-size:12px">minuit.app</p>
</div>
return `<!doctype html><html lang="fr" style="background-color:#0b0b10"><head>
<meta charset="utf-8" />
<meta name="color-scheme" content="dark" />
<meta name="supported-color-schemes" content="dark" />
<style>
:root { color-scheme: dark; supported-color-schemes: dark; }
body { margin:0 !important; background-color:#0b0b10 !important; }
body, .email-surface { background-color:#0b0b10 !important; color:#ffffff !important; }
u + .body .email-surface { background-color:#0b0b10 !important; color:#ffffff !important; }
u + .body .email-content,
[data-ogsc] .email-content,
[data-ogsb] .email-content { background-color:#151520 !important; color:#ffffff !important; }
u + .body .email-content *,
[data-ogsc] .email-content *,
[data-ogsb] .email-content * { color:#ffffff !important; }
</style>
</head><body class="body" data-ogsc="dark" data-ogsb="dark" bgcolor="#0b0b10" style="margin:0;padding:0;background-color:#0b0b10!important;color:#ffffff!important;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5">
<table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%" class="email-surface" style="border-collapse:collapse;background-color:#0b0b10">
<tr>
<td align="center" style="padding:40px 16px">
<table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%" bgcolor="#151520" class="email-content" style="max-width:640px;border-radius:12px;background-color:#151520;border:1px solid rgba(255,255,255,0.08);box-shadow:0 12px 40px rgba(0,0,0,0.35);overflow:hidden">
<tr>
<td bgcolor="#151520" style="padding:24px;background-color:#151520;color:#ffffff">
<div style="text-align:center;margin-bottom:20px;color:#ffffff">
<img src="${musicLandLogoSrc}" alt="MusicLand" style="height:40px" />
</div>
<h2 style="margin:0 0 16px;font-size:24px;color:#ffffff!important">${title}</h2>
<div style="color:rgba(255,255,255,0.9)!important">${content}</div>
${btn}
<hr style="margin:24px 0;border:none;border-top:1px solid rgba(255,255,255,0.1)" />
<p style="color:rgba(255,255,255,0.45);font-size:12px;margin:0">minuit.app</p>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body></html>`;
}
function welcomeTemplate({ firstName = "", lastName = "" }) {
const fullName = [firstName, lastName].filter(Boolean).join(" ").trim();
const greeting = fullName ? `Salut ${fullName},` : "Salut,";
return `<!doctype html><html><body style="margin:0;padding:0;background:#0b0b10;color:#fff;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif">
<div style="max-width:640px;margin:0 auto;padding:40px 24px">
<div style="background:#151520;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,0.08)">
<div style="padding:32px 28px">
<div style="text-align:center;margin-bottom:24px">
<img
src="${musicLandLogoSrc}"
alt="MusicLand"
style="display:block;margin:0 auto;width:180px;max-width:100%;height:auto"
/>
</div>
<p style="margin:0 0 12px;font-size:16px;letter-spacing:0.2px">${greeting}</p>
<h1 style="margin:0 0 16px;font-size:28px;line-height:1.2">Bienvenue sur MusicLand</h1>
<p style="margin:0 0 16px;font-size:16px;line-height:1.6;color:rgba(255,255,255,0.85)">
Nous sommes ravis de t'accueillir dans la communauté des artistes et passionnés de MusicLand.
</p>
<p style="margin:0 0 16px;font-size:15px;line-height:1.6;color:rgba(255,255,255,0.75)">
Explore les playlists collaboratives, dépose tes projets et découvre ce que prépare la scène émergente.
</p>
<p style="margin:0;font-size:15px;line-height:1.6;color:rgba(255,255,255,0.75)">
L'équipe MusicLand
</p>
</div>
</div>
<p style="margin:32px 0 0;text-align:center;font-size:12px;color:rgba(255,255,255,0.45)">minuit.app · Paris, France</p>
</div>
return `<!doctype html><html lang="fr" style="background-color:#0b0b10"><head>
<meta charset="utf-8" />
<meta name="color-scheme" content="dark" />
<meta name="supported-color-schemes" content="dark" />
<style>
:root { color-scheme: dark; supported-color-schemes: dark; }
body { margin:0 !important; background-color:#0b0b10 !important; }
body, .email-surface { background-color:#0b0b10 !important; color:#ffffff !important; }
u + .body .email-surface { background-color:#0b0b10 !important; color:#ffffff !important; }
u + .body .email-content,
[data-ogsc] .email-content,
[data-ogsb] .email-content { background-color:#151520 !important; color:#ffffff !important; }
u + .body .email-content *,
[data-ogsc] .email-content *,
[data-ogsb] .email-content * { color:#ffffff !important; }
</style>
</head><body class="body" data-ogsc="dark" data-ogsb="dark" bgcolor="#0b0b10" style="margin:0;padding:0;background-color:#0b0b10!important;color:#ffffff!important;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5">
<table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%" class="email-surface" style="border-collapse:collapse;background-color:#0b0b10">
<tr>
<td align="center" style="padding:40px 16px">
<table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%" bgcolor="#151520" class="email-content" style="max-width:640px;border-radius:16px;overflow:hidden;background-color:#151520;border:1px solid rgba(255,255,255,0.08);box-shadow:0 12px 40px rgba(0,0,0,0.35)">
<tr>
<td bgcolor="#151520" style="padding:32px 28px;background-color:#151520;color:#ffffff">
<div style="text-align:center;margin-bottom:24px;color:#ffffff">
<img
src="${musicLandLogoSrc}"
alt="MusicLand"
style="display:block;margin:0 auto;width:180px;max-width:100%;height:auto"
/>
</div>
<p style="margin:0 0 12px;font-size:16px;letter-spacing:0.2px;color:#ffffff!important">${greeting}</p>
<h1 style="margin:0 0 16px;font-size:28px;line-height:1.2;color:#ffffff!important">Bienvenue sur MusicLand</h1>
<p style="margin:0 0 16px;font-size:16px;line-height:1.6;color:#ffffff!important">
Nous sommes ravis de t'accueillir dans la communauté des artistes et passionnés de MusicLand.
</p>
<p style="margin:0 0 16px;font-size:15px;line-height:1.6;color:#ffffff!important">
Explore les playlists collaboratives, dépose tes projets et découvre ce que prépare la scène émergente.
</p>
<p style="margin:0;font-size:15px;line-height:1.6;color:#ffffff!important">
L'équipe MusicLand
</p>
</td>
</tr>
</table>
<p style="margin:32px 0 0;text-align:center;font-size:12px;color:rgba(255,255,255,0.6)">minuit.app · Paris, France</p>
</td>
</tr>
</table>
</body></html>`;
}