Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3297 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
2477 stevensc 1
import React, { useLayoutEffect } from 'react'
3295 stevensc 2
import { useMatch } from 'react-router-dom'
2477 stevensc 3
import { useSelector } from 'react-redux'
3295 stevensc 4
 
2595 stevensc 5
import 'converse.js'
6
import './converse.css'
2596 stevensc 7
import './chat.css'
5 stevensc 8
 
3201 stevensc 9
export default function Chat() {
3293 stevensc 10
  const match = useMatch('/habits/*')
11
 
3067 stevensc 12
  const {
13
    xmpp_hostname,
14
    xmpp_username,
15
    xmpp_password,
3076 stevensc 16
    xmpp_domain
17
    // xmpp_port
3067 stevensc 18
  } = useSelector((state) => state.auth)
5 stevensc 19
 
2589 stevensc 20
  useLayoutEffect(() => {
3102 stevensc 21
    const converse = window.converse
22
 
3297 stevensc 23
    if (
24
      !xmpp_hostname ||
25
      !xmpp_username ||
26
      !xmpp_password ||
27
      !xmpp_domain ||
28
      match
29
    ) {
2595 stevensc 30
      return
3102 stevensc 31
    }
5 stevensc 32
 
3298 stevensc 33
    if (match && converse.connection) {
34
      converse.connection?.disconnect()
35
      return
36
    }
37
 
2477 stevensc 38
    converse.initialize({
3076 stevensc 39
      bosh_service_url: `https://${xmpp_hostname}:${17443}/http-bind/`,
2477 stevensc 40
      authentication: 'login',
41
      jid: `${xmpp_username}@${xmpp_domain}.com`,
42
      password: xmpp_password,
43
      discover_connection_methods: false,
2480 stevensc 44
      allow_adhoc_commands: false,
2477 stevensc 45
      allow_registration: false,
2480 stevensc 46
      allow_logout: false,
2477 stevensc 47
      auto_login: true,
48
      auto_reconnect: true,
3142 stevensc 49
      debug: true,
2477 stevensc 50
      view_mode: 'overlayed',
3077 stevensc 51
      i18n: 'es',
3081 stevensc 52
      emojis: true,
3141 stevensc 53
      clear_cache_on_logout: true,
54
      persistent_store: 'localStorage',
3077 stevensc 55
      assets_path: '/public/'
2477 stevensc 56
    })
5 stevensc 57
 
2477 stevensc 58
    return () => {
2623 stevensc 59
      converse.connection?.disconnect()
5 stevensc 60
    }
3298 stevensc 61
  }, [xmpp_hostname, xmpp_password, xmpp_username, xmpp_domain, match])
5 stevensc 62
 
3142 stevensc 63
  return <div id='converse-container'></div>
517 stevensc 64
}