generated from nhcarrigan/template
feat: only show cta once per week
Some checks failed
Node.js CI / Lint and Test (push) Has been cancelled
Some checks failed
Node.js CI / Lint and Test (push) Has been cancelled
This commit is contained in:
parent
8f76c3b9f1
commit
017261c80b
12
src/index.ts
12
src/index.ts
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user