Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev 5065 Rev 5195
Línea 1... Línea 1...
1
/* eslint-disable react/prop-types */
1
/* eslint-disable react/prop-types */
2
import React from "react"
-
 
3
import { useState, useEffect } from "react"
2
import React, { useEffect, useState } from 'react'
4
import { axios } from "../../utils"
3
import { axios } from '../../utils'
5
import { FiMaximize2 } from 'react-icons/fi'
4
import { FiMaximize2 } from 'react-icons/fi'
6
import AddIcon from '@mui/icons-material/Add'
5
import AddIcon from '@mui/icons-material/Add'
Línea 7... Línea 6...
7
 
6
 
8
// Components
7
// Components
9
import NotificationAlert from "../../shared/notification/NotificationAlert"
8
import NotificationAlert from '../../shared/notification/NotificationAlert'
10
import PersonalChat from "./personal-chat/PersonalChat"
9
import PersonalChat from './personal-chat/PersonalChat'
11
import ContactsModal from "./components/ContactsModal"
10
import ContactsModal from './components/ContactsModal'
Línea 12... Línea 11...
12
import ContactsFilters from "./components/contactsFilters"
11
import ContactsFilters from './components/contactsFilters'
Línea 13... Línea 12...
13
 
12
 
14
const notifyAudio = new Audio("/audio/chat.mp3")
13
const notifyAudio = new Audio('/audio/chat.mp3')
15
 
14
 
Línea 34... Línea 33...
34
    setContacts(entities)
33
    setContacts(entities)
35
  }
34
  }
Línea 36... Línea 35...
36
 
35
 
37
  const heartBeat = async () => {
36
  const heartBeat = async () => {
38
    try {
37
    try {
39
      const { data } = await axios.get("/chat/heart-beat")
38
      const { data } = await axios.get('/chat/heart-beat')
40
      if (data.success) handleEntities(data.data)
39
      if (data.success) handleEntities(data.data)
41
      return data.data
40
      return data.data
42
    } catch (error) {
41
    } catch (error) {
43
      console.log('>>: chat error > ', error)
42
      console.log('>>: chat error > ', error)
Línea 86... Línea 85...
86
      return null
85
      return null
87
    }
86
    }
Línea 88... Línea 87...
88
 
87
 
89
    if (activeChats.length >= 3) {
88
    if (activeChats.length >= 3) {
90
      await handleCloseConversation(activeChats[0])
89
      await handleCloseConversation(activeChats[0])
91
      setActiveChats(prevActiveChats => [...prevActiveChats, { ...entity, minimized: minimized }])
90
      setActiveChats(prevActiveChats => [...prevActiveChats, { ...entity, minimized }])
92
      return
91
      return
Línea 93... Línea 92...
93
    }
92
    }
94
 
93
 
Línea 95... Línea 94...
95
    setActiveChats(prevActiveChats => [...prevActiveChats, { ...entity, minimized: minimized }])
94
    setActiveChats(prevActiveChats => [...prevActiveChats, { ...entity, minimized }])
96
  }
95
  }
97
 
96
 
Línea 127... Línea 126...
127
          }
126
          }
128
        }
127
        }
129
        return chat
128
        return chat
130
      }))
129
      }))
131
    }
130
    }
132
 
-
 
133
  }
131
  }
Línea 134... Línea 132...
134
 
132
 
135
  const playNotifyAudio = (minimized = true) => {
133
  const playNotifyAudio = (minimized = true) => {
136
    if (!isMuted && minimized) {
134
    if (!isMuted && minimized) {
Línea 155... Línea 153...
155
        return entities
153
        return entities
156
      }
154
      }
Línea 157... Línea 155...
157
 
155
 
158
      setTimeout(() => {
156
      setTimeout(() => {
159
        fetchData()
157
        fetchData()
160
      }, "2000")
158
      }, '2000')
161
    }
159
    }
Línea 162... Línea 160...
162
  }, [loading])
160
  }, [loading])
163
 
161
 
Línea 167... Línea 165...
167
 
165
 
168
      if (pendingChat) {
166
      if (pendingChat) {
169
        handleOpenConversation(pendingChat)
167
        handleOpenConversation(pendingChat)
170
        setPendingConversation('')
168
        setPendingConversation('')
171
      }
-
 
172
 
169
      }
173
    }
170
    }
Línea 174... Línea 171...
174
  }, [pendingConversation, contacts])
171
  }, [pendingConversation, contacts])
175
 
172
 
176
  useEffect(() => {
173
  useEffect(() => {
177
    emojione.imageType = "png"
174
    emojione.imageType = 'png'
178
    emojione.sprites = false
175
    emojione.sprites = false
179
    emojione.ascii = true
176
    emojione.ascii = true
Línea 185... Línea 182...
185
  return (
182
  return (
186
    <>
183
    <>
187
      <div className="chat-helper">
184
      <div className="chat-helper">
188
        <div className="subpanel_title" onClick={(e) => (e.currentTarget === e.target) && setIsChatOpen(!isChatOpen)}>
185
        <div className="subpanel_title" onClick={(e) => (e.currentTarget === e.target) && setIsChatOpen(!isChatOpen)}>
189
          <a href="/chat" className="text-chat-title">
186
          <a href="/chat" className="text-chat-title">
190
            Chat
187
            {CHAT_LABELS.CHAT}
191
            <FiMaximize2 className="ml-3" />
188
            <FiMaximize2 className="ml-3" />
192
          </a>
189
          </a>
193
          <div className="subpanel_title-icons">
190
          <div className="subpanel_title-icons">
194
            <i
191
            <i
195
              className={`icon ${isMuted ? "icon-volume-off" : "icon-volume-2"} text-20`}
192
              className={`icon ${isMuted ? 'icon-volume-off' : 'icon-volume-2'} text-20`}
196
              onClick={handleMute}
193
              onClick={handleMute}
197
            />
194
            />
198
            <i
195
            <i
199
              className={`fa ${isChatOpen ? "fa-angle-down" : "fa-angle-up"} text-20`}
196
              className={`fa ${isChatOpen ? 'fa-angle-down' : 'fa-angle-up'} text-20`}
200
              onClick={() => setIsChatOpen(!isChatOpen)}
197
              onClick={() => setIsChatOpen(!isChatOpen)}
201
            />
198
            />
202
          </div>
199
          </div>
203
        </div>
200
        </div>
204
        {defaultNetwork !== 'y' &&
201
        {defaultNetwork !== 'y' &&
205
          <button className="action-btn" onClick={() => setShowModal(true)}>
202
          <button className="action-btn" onClick={() => setShowModal(true)}>
206
            <AddIcon />
203
            <AddIcon />
207
            Iniciar conversación
204
            {CHAT_LABELS.START_CONVERSATION}
208
          </button>
205
          </button>
209
        }
206
        }
210
        {isChatOpen &&
207
        {isChatOpen &&
211
          <ContactsFilters
208
          <ContactsFilters
212
            dataset={contacts}
209
            dataset={contacts}