diff --git a/frontend/src/routes/+page.svelte b/frontend/src/routes/+page.svelte index dde7ee2..e015b7a 100644 --- a/frontend/src/routes/+page.svelte +++ b/frontend/src/routes/+page.svelte @@ -303,6 +303,17 @@ } } + // The finite-ending's gentle nudge: one tap to get tomorrow's brief by email. + let digestBusy = $state(false); + async function subscribeDigest() { + if (!auth.user) { showSignIn = true; return; } // sign in, then enable below + if (auth.user.digest_enabled || digestBusy) return; + digestBusy = true; + try { await postJSON('/api/account/digest', { enabled: true }); await refreshAuth(); } + catch { /* leave as-is */ } + finally { digestBusy = false; } + } + const MIX_EVENT = { notToday: 'not_today', lessLikeThis: 'less_like_this', alwaysHide: 'hide_topic' }; function applyAction(kind, value) { applyPrefAction(kind, value); // updates + persists + syncs to account @@ -430,7 +441,17 @@ {/if} -
✦ that's the good news for today ✦
+✦ that's the good news for today ✦
+You're caught up — see you tomorrow.
+ {#if auth.user?.digest_enabled} +Tomorrow's brief is headed to your inbox ☕
+ {:else} + + {/if} +No highlights yet today — try a calmer filter, or check back soon.
{/if} @@ -532,6 +553,15 @@ text-align: center; color: var(--muted); font-family: var(--serif); font-style: italic; margin: 40px 0 10px; letter-spacing: 0.02em; } + .endcap .endmark { margin: 0; } + .endcap .endsub { margin: 4px 0 0; font-size: 0.92rem; } + .endcap .digestnote { margin: 14px 0 0; font-style: normal; font-family: var(--label); font-size: 0.86rem; color: var(--accent-deep); } + .endcap .digestcta { + margin-top: 16px; font-family: var(--label); font-style: normal; font-size: 0.9rem; cursor: pointer; + background: var(--accent); color: #fff; border: none; border-radius: 999px; padding: 10px 22px; + } + .endcap .digestcta:hover { background: var(--accent-deep); } + .endcap .digestcta:disabled { opacity: 0.6; cursor: default; } .loadmore { display: flex; justify-content: center; margin: 30px 0 6px; } .loadmore button { background: var(--surface); border: 1px solid var(--line); color: var(--accent-deep); diff --git a/frontend/src/routes/account/+page.svelte b/frontend/src/routes/account/+page.svelte index a05fda4..a3715ca 100644 --- a/frontend/src/routes/account/+page.svelte +++ b/frontend/src/routes/account/+page.svelte @@ -1,7 +1,7 @@