Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 1759 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1759 Rev 1765
Línea 8... Línea 8...
8
  const [conversations, setConversations] = useState([])
8
  const [conversations, setConversations] = useState([])
9
  const [currentConversation, setCurrentConversation] = useState(null)
9
  const [currentConversation, setCurrentConversation] = useState(null)
10
  const [loading, setLoading] = useState(false)
10
  const [loading, setLoading] = useState(false)
11
  const dispatch = useDispatch()
11
  const dispatch = useDispatch()
Línea 12... Línea 12...
12
 
12
 
13
  function getDiff(arr1 = [], arr2 = []) {
13
  function mergeConversations(arr1 = [], arr2 = []) {
14
    if (arr1.length !== arr2.length) return true
14
    const mergedArr = [...arr1, ...arr2]
15
    const set = new Set(arr1.map((obj) => obj.uuid))
15
    const idsSet = new Set(mergedArr.map((obj) => obj.uuid))
-
 
16
    const diff = mergedArr.filter((obj) => idsSet.has(obj.uuid))
16
    return !arr2.every((obj) => set.has(obj.uuid))
17
    return diff
Línea 17... Línea 18...
17
  }
18
  }
18
 
19
 
19
  const heartBeat = async (url) => {
20
  const heartBeat = async (url) => {
20
    setLoading(true)
21
    setLoading(true)
21
    try {
22
    try {
22
      const results = await getConversations(url)
23
      const results = await getConversations(url)
23
      const diff = getDiff(conversations, results)
24
      const newConversations = mergeConversations(conversations, results)
24
      if (!conversations.length || diff) setConversations(results)
25
      setConversations(newConversations)
25
    } catch (error) {
26
    } catch (error) {
26
      dispatch(addNotification({ style: 'danger', msg: error.message }))
27
      dispatch(addNotification({ style: 'danger', msg: error.message }))
27
    } finally {
28
    } finally {