Rev 2376 | Rev 2778 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import { useEffect, useMemo } from 'react'import useFetch from '@app/hooks/useFetch'export function useNavbar() {const { data: menuData } = useFetch('/helpers/menu')const {data: session,refetch,isLoading} = useFetch(menuData?.routeCheckSession)const memoMenu = useMemo(() => {if (!menuData.menu) return []const menu = structuredClone(menuData?.menu)const comunicationIndex = menu.findIndex((item) => item.label === 'Comunicación')const comunication = menu[comunicationIndex]const newComunicationChilds = comunication.childs.map((child) => {if (child.label === 'Notificaciones') {return { ...child, count: session?.total_notifications }}if (child.label === 'Inmail') {return { ...child, count: session?.total_messages }}return child})comunication.childs = newComunicationChildsmenu[comunicationIndex] = comunicationreturn menu}, [menuData, session])useEffect(() => {const sessionInterval = setTimeout(() => {!isLoading && refetch()}, 3000)return () => {clearInterval(sessionInterval)}}, [isLoading])return {menuData: { ...menuData, menu: memoMenu },totalNotifications: session?.total_notifications ?? 0,totalMessages: session?.total_messages ?? 0}}