Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3432 | Rev 3434 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3432 Rev 3433
Línea 1... Línea 1...
1
import { useEffect, useMemo } from 'react'
1
import { useEffect, useMemo } from "react";
Línea 2... Línea 2...
2
 
2
 
Línea 3... Línea 3...
3
import { useFetch } from '@hooks'
3
import { useFetch } from "@hooks";
4
 
4
 
5
export function useNavbar() {
-
 
6
  const { data: menuData } = useFetch('/helpers/menu')
-
 
7
  const {
-
 
8
    data: session,
-
 
9
    refetch,
-
 
10
    isLoading
-
 
11
  } = useFetch(menuData?.routeCheckSession)
-
 
12
 
-
 
13
  const memoMenu = useMemo(() => {
-
 
14
    if (!menuData.menu) return []
-
 
15
 
-
 
16
    const menu = structuredClone(menuData?.menu)
-
 
17
    const comunicationIndex = menu.findIndex(
-
 
18
      (item) => item.label === 'Comunicación'
-
 
19
    )
-
 
20
    const comunication = menu[comunicationIndex]
-
 
21
 
-
 
22
    const newComunicationChilds = comunication.childs.map((child) => {
-
 
23
      if (child.label === 'Notificaciones') {
-
 
24
        return { ...child, count: session?.total_notifications }
-
 
25
      }
-
 
26
 
-
 
27
      if (child.label === 'Inmail') {
-
 
28
        return { ...child, count: session?.total_messages }
-
 
29
      }
-
 
30
 
-
 
31
      return child
-
 
32
    })
-
 
33
 
-
 
34
    comunication.childs = newComunicationChilds
-
 
35
    menu[comunicationIndex] = comunication
-
 
36
 
-
 
37
    return menu
-
 
38
  }, [menuData, session])
-
 
39
 
-
 
40
  useEffect(() => {
-
 
41
    const sessionInterval = setTimeout(() => {
-
 
42
      !isLoading && refetch()
-
 
43
    }, 3000)
-
 
44
 
-
 
45
    return () => {
-
 
46
      clearInterval(sessionInterval)
-
 
Línea 47... Línea 5...
47
    }
5
export function useNavbar() {
48
  }, [isLoading])
6
  const { data: menuData } = useFetch("/helpers/menu");
49
 
-
 
50
  return {
-
 
51
    menuData: { ...menuData, menu: memoMenu },
7
 
52
    totalNotifications: session?.total_notifications ?? 0,
8
  return {