Rev 2302 | Rev 2304 | 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'
function useNavbar() {
const { data: menuData } = useFetch('/helpers/menu')
const { data: session, refetch } = useFetch(menuData?.routeCheckSession)
const memoMenu = useMemo(() => {
const menu = menuData?.menu
const newMenu = menu?.map((item) => {
if (menu.label !== 'Comunicación') return item
const newItem = item.childs.map((child) => {
if (child.label === 'Notificaciones') {
return { ...child, count: session?.total_notifications }
}
if (child.label === 'Inmail') {
return { ...child, count: session?.total_messages }
}
return item
})
return newItem
})
console.log(newMenu)
return newMenu
}, [menuData, session])
useEffect(() => {
const sessionInterval = setInterval(() => refetch(), 3000)
return () => {
clearInterval(sessionInterval)
}
}, [])
return {
menuData: { ...menuData, menu: memoMenu },
totalNotifications: session?.total_notifications ?? 0,
totalMessages: session?.total_messages ?? 0
}
}
export default useNavbar