diff options
Diffstat (limited to 'src/frontend/app/hooks')
| -rw-r--r-- | src/frontend/app/hooks/useEnMarchaAnnouncement.ts | 29 |
1 files changed, 29 insertions, 0 deletions
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, + }; +}; |
