@eclass/ui-kit 1.58.2 → 1.58.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9602,6 +9602,38 @@ function validateTimezone(_hours, minutes) {
9602
9602
  const STORAGE_TODAY_EVENT = "todayEvents";
9603
9603
  const STORAGE_SEEN_EVENT = "seenEvents";
9604
9604
  const STORAGE_HAS_NEW = "hasNewEvents";
9605
+ const getStorage = () => {
9606
+ if (typeof window === "undefined")
9607
+ return null;
9608
+ try {
9609
+ return window.localStorage;
9610
+ } catch {
9611
+ return null;
9612
+ }
9613
+ };
9614
+ const readStorageArray = (key) => {
9615
+ const storage = getStorage();
9616
+ if (!storage)
9617
+ return [];
9618
+ try {
9619
+ const value = storage.getItem(key);
9620
+ if (!value)
9621
+ return [];
9622
+ const parsed = JSON.parse(value);
9623
+ return Array.isArray(parsed) ? parsed : [];
9624
+ } catch {
9625
+ return [];
9626
+ }
9627
+ };
9628
+ const writeStorageValue = (key, value) => {
9629
+ const storage = getStorage();
9630
+ if (!storage)
9631
+ return;
9632
+ try {
9633
+ storage.setItem(key, JSON.stringify(value));
9634
+ } catch {
9635
+ }
9636
+ };
9605
9637
  const useParseEvents = (events, now) => {
9606
9638
  const [todayEvents, setTodayEvents] = useState([]);
9607
9639
  const [tomorrowEvents, setTomorrowEvents] = useState([]);
@@ -9609,12 +9641,11 @@ const useParseEvents = (events, now) => {
9609
9641
  const [hasNew, setHasNew] = useState(false);
9610
9642
  const [hasMoreNext, setHasMoreNext] = useState(false);
9611
9643
  useEffect(() => {
9612
- var _a, _b;
9613
9644
  const parseNow = parseISO(now);
9614
9645
  const today = startOfDay(parseNow);
9615
9646
  const tomorrow = addDays(today, 1);
9616
- const storedTodayEvent = JSON.parse((_a = localStorage.getItem(STORAGE_TODAY_EVENT)) != null ? _a : "[]");
9617
- const storedSeenEvent = JSON.parse((_b = localStorage.getItem(STORAGE_SEEN_EVENT)) != null ? _b : "[]");
9647
+ const storedTodayEvent = readStorageArray(STORAGE_TODAY_EVENT);
9648
+ const storedSeenEvent = readStorageArray(STORAGE_SEEN_EVENT);
9618
9649
  let newEvents = false;
9619
9650
  const todayList = [];
9620
9651
  const tomorrowList = [];
@@ -9642,20 +9673,21 @@ const useParseEvents = (events, now) => {
9642
9673
  if (nextList.length > 5) {
9643
9674
  setHasMoreNext(true);
9644
9675
  next = next.slice(0, 5);
9676
+ } else {
9677
+ setHasMoreNext(false);
9645
9678
  }
9646
9679
  setNextEvents(next);
9647
9680
  setHasNew(newEvents);
9648
- localStorage.setItem(STORAGE_TODAY_EVENT, JSON.stringify(storedTodayEvent));
9649
- localStorage.setItem(STORAGE_HAS_NEW, JSON.stringify(newEvents));
9681
+ writeStorageValue(STORAGE_TODAY_EVENT, storedTodayEvent);
9682
+ writeStorageValue(STORAGE_HAS_NEW, newEvents);
9650
9683
  }, [events, now]);
9651
9684
  const closeAndMarkSeen = () => {
9652
- var _a;
9653
- const storedSeenEvent = JSON.parse((_a = localStorage.getItem(STORAGE_SEEN_EVENT)) != null ? _a : "[]");
9685
+ const storedSeenEvent = readStorageArray(STORAGE_SEEN_EVENT);
9654
9686
  const updatedSeenEvents = Array.from(
9655
9687
  /* @__PURE__ */ new Set([...storedSeenEvent, ...todayEvents.map((e2) => e2.id)])
9656
9688
  );
9657
- localStorage.setItem(STORAGE_SEEN_EVENT, JSON.stringify(updatedSeenEvents));
9658
- localStorage.setItem(STORAGE_HAS_NEW, JSON.stringify(false));
9689
+ writeStorageValue(STORAGE_SEEN_EVENT, updatedSeenEvents);
9690
+ writeStorageValue(STORAGE_HAS_NEW, false);
9659
9691
  setTimeout(() => {
9660
9692
  setTodayEvents(todayEvents.map((el) => ({ ...el, isNew: false })));
9661
9693
  }, 300);