Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 2778 | Rev 3432 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3416 stevensc 1
import { useMemo } from "react";
2301 stevensc 2
 
3416 stevensc 3
import { useFetch } from "@hooks";
2301 stevensc 4
 
2774 stevensc 5
export function useNavbar() {
3416 stevensc 6
  const { data: menuData } = useFetch("/helpers/menu");
7
  const { data: session } = useFetch(menuData?.routeCheckSession);
2301 stevensc 8
 
9
  const memoMenu = useMemo(() => {
3416 stevensc 10
    if (!menuData.menu) return [];
2301 stevensc 11
 
3416 stevensc 12
    const menu = structuredClone(menuData?.menu);
2304 stevensc 13
    const comunicationIndex = menu.findIndex(
3416 stevensc 14
      (item) => item.label === "Comunicación"
15
    );
16
    const comunication = menu[comunicationIndex];
2301 stevensc 17
 
2304 stevensc 18
    const newComunicationChilds = comunication.childs.map((child) => {
3416 stevensc 19
      if (child.label === "Notificaciones") {
20
        return { ...child, count: session?.total_notifications };
2304 stevensc 21
      }
2301 stevensc 22
 
3416 stevensc 23
      if (child.label === "Inmail") {
24
        return { ...child, count: session?.total_messages };
2304 stevensc 25
      }
2301 stevensc 26
 
3416 stevensc 27
      return child;
28
    });
2301 stevensc 29
 
3416 stevensc 30
    comunication.childs = newComunicationChilds;
31
    menu[comunicationIndex] = comunication;
2303 stevensc 32
 
3416 stevensc 33
    return menu;
34
  }, [menuData, session]);
2301 stevensc 35
 
36
  return {
37
    menuData: { ...menuData, menu: memoMenu },
38
    totalNotifications: session?.total_notifications ?? 0,
3416 stevensc 39
    totalMessages: session?.total_messages ?? 0,
40
  };
2301 stevensc 41
}