aboutsummaryrefslogtreecommitdiff
path: root/src/frontend/app/hooks/useEnMarchaAnnouncement.ts
blob: d1354652eaef5984ed60850a4f88d33872540c19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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,
  };
};