Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev 4814 Rev 4904
Línea 8... Línea 8...
8
 
8
 
9
const NotificationsOption = ({ addNotification, sessionLink, Icon, title, url, }) => {
9
const NotificationsOption = ({ addNotification, sessionLink, Icon, title, url, }) => {
10
    const [notifications, setNotifications] = useState([])
10
    const [notifications, setNotifications] = useState([])
11
    const [displayMenu, setDisplayMenu] = useState(false)
11
    const [displayMenu, setDisplayMenu] = useState(false)
12
    const [notificationsCount, setNotificationsCount] = useState(0)
12
    const [notificationsCount, setNotificationsCount] = useState(0)
13
    const [loading, setLoading] = useState(false);
13
    const [loading, setLoading] = useState(false)
14
    const menu = useRef(null)
14
    const menu = useRef(null)
Línea 15... Línea -...
15
    const outsideClick = useOutsideClick(menu)
-
 
16
 
-
 
17
    useEffect(() => {
-
 
18
        if (outsideClick) setDisplayMenu(false)
-
 
19
    }, [outsideClick])
-
 
20
 
-
 
21
    useEffect(() => {
-
 
22
        handleNotifications()
-
 
23
    }, [notificationsCount])
-
 
24
 
-
 
25
    useEffect(() => {
-
 
26
        let timer;
-
 
27
        if (!loading) {
-
 
28
            timer = setTimeout(() => checkSession(), 1000);
-
 
29
        }
-
 
30
        return () => {
-
 
31
            clearTimeout(timer);
-
 
32
        };
-
 
33
    }, [loading])
15
    const outsideClick = useOutsideClick(menu)
34
 
16
 
35
    const checkSession = async () => {
17
    const checkSession = async () => {
36
        try {
18
        try {
37
            setLoading(true)
19
            setLoading(true)
Línea 87... Línea 69...
87
            e.preventDefault()
69
            e.preventDefault()
88
            setDisplayMenu(!displayMenu)
70
            setDisplayMenu(!displayMenu)
89
        }
71
        }
90
    }
72
    }
Línea -... Línea 73...
-
 
73
 
-
 
74
    useEffect(() => {
-
 
75
        if (outsideClick) setDisplayMenu(false)
-
 
76
    }, [outsideClick])
-
 
77
 
-
 
78
    useEffect(() => {
-
 
79
        handleNotifications()
-
 
80
    }, [notificationsCount])
-
 
81
 
-
 
82
    useEffect(() => {
-
 
83
        let timer
-
 
84
        if (!loading) {
-
 
85
            timer = setTimeout(() => checkSession(), 1000)
-
 
86
        }
-
 
87
        return () => {
-
 
88
            clearTimeout(timer)
-
 
89
        }
-
 
90
    }, [loading])
91
 
91
 
92
    return (
92
    return (
93
        <li ref={menu}>
93
        <li ref={menu}>
94
            <a href={url} className={`header__option mobile ${displayMenu && 'active'}`} target='framename' onClick={handleClick}>
94
            <a href={url} className={`header__option mobile ${displayMenu && 'active'}`} target='framename' onClick={handleClick}>
95
                {Icon && <Icon className="header__option-icon" />}
95
                {Icon && <Icon className="header__option-icon" />}
Línea 127... Línea 127...
127
    )
127
    )
128
}
128
}
Línea 129... Línea 129...
129
 
129
 
130
const mapDispatchToProps = {
130
const mapDispatchToProps = {
131
    addNotification: (notification) => addNotification(notification),
131
    addNotification: (notification) => addNotification(notification),
Línea 132... Línea 132...
132
};
132
}
133
 
133