From 77cdd394b947a99b70654cd1f5aff3ee724b76fc Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero Date: Thu, 1 Jan 2026 02:46:29 +0100 Subject: Add enmarcha announcement --- src/frontend/app/hooks/useEnMarchaAnnouncement.ts | 29 +++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/frontend/app/hooks/useEnMarchaAnnouncement.ts (limited to 'src/frontend/app/hooks/useEnMarchaAnnouncement.ts') diff --git a/src/frontend/app/hooks/useEnMarchaAnnouncement.ts b/src/frontend/app/hooks/useEnMarchaAnnouncement.ts new file mode 100644 index 0000000..d135465 --- /dev/null +++ b/src/frontend/app/hooks/useEnMarchaAnnouncement.ts @@ -0,0 +1,29 @@ +import { useEffect, useState } from "react"; + +export const useEnMarchaAnnouncement = () => { + const [isOpen, setIsOpen] = useState(false); + + useEffect(() => { + const lastShown = localStorage.getItem("enmarcha_announcement_last_shown"); + const today = new Date().toISOString().split("T")[0]; + + if (lastShown !== today) { + // Show after a short delay to not overwhelm the user immediately on load + const timer = setTimeout(() => { + setIsOpen(true); + }, 2000); + return () => clearTimeout(timer); + } + }, []); + + const closeAnnouncement = () => { + const today = new Date().toISOString().split("T")[0]; + localStorage.setItem("enmarcha_announcement_last_shown", today); + setIsOpen(false); + }; + + return { + isOpen, + closeAnnouncement, + }; +}; -- cgit v1.3