feat: only show cta once per week
Some checks failed
Node.js CI / Lint and Test (push) Has been cancelled

This commit is contained in:
Naomi Carrigan 2025-02-16 23:17:18 -08:00
parent 8f76c3b9f1
commit 017261c80b
Signed by: naomi
SSH Key Fingerprint: SHA256:rca1iUI2OhAM6n4FIUaFcZcicmri0jgocqKiTTAfrt8

View File

@ -360,12 +360,24 @@ const handleModalClick = (event: MouseEvent): void => {
} }
}; };
const showModal = (): void => { const showModal = (): void => {
const lastShown = Number.parseInt(
localStorage.getItem("naomi-community-cta") ?? "0",
10,
);
const lastShownDate = new Date(lastShown);
const diff = Date.now() - lastShownDate.getTime();
console.table({ diff, lastShown, lastShownDate });
// We only want to show this once a week.
if (diff < 1000 * 60 * 60 * 24 * 7) {
return;
}
cta.showModal(); cta.showModal();
modalBg.style.display = "block"; modalBg.style.display = "block";
modalBg.addEventListener("click", closeModal); modalBg.addEventListener("click", closeModal);
const closeButton = cta.querySelector("button"); const closeButton = cta.querySelector("button");
closeButton?.addEventListener("click", closeModal); closeButton?.addEventListener("click", closeModal);
cta.addEventListener("click", handleModalClick); cta.addEventListener("click", handleModalClick);
localStorage.setItem("naomi-community-cta", Date.now().toString());
}; };
body?.appendChild(cta); body?.appendChild(cta);