Rev 3297 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useLayoutEffect } from 'react'
import { useMatch } from 'react-router-dom'
import { useSelector } from 'react-redux'
import 'converse.js'
import './converse.css'
import './chat.css'
export default function Chat() {
const match = useMatch('/habits/*')
const {
xmpp_hostname,
xmpp_username,
xmpp_password,
xmpp_domain
// xmpp_port
} = useSelector((state) => state.auth)
useLayoutEffect(() => {
const converse = window.converse
if (
!xmpp_hostname ||
!xmpp_username ||
!xmpp_password ||
!xmpp_domain ||
match
) {
return
}
if (match && converse.connection) {
converse.connection?.disconnect()
return
}
converse.initialize({
bosh_service_url: `https://${xmpp_hostname}:${17443}/http-bind/`,
authentication: 'login',
jid: `${xmpp_username}@${xmpp_domain}.com`,
password: xmpp_password,
discover_connection_methods: false,
allow_adhoc_commands: false,
allow_registration: false,
allow_logout: false,
auto_login: true,
auto_reconnect: true,
debug: true,
view_mode: 'overlayed',
i18n: 'es',
emojis: true,
clear_cache_on_logout: true,
persistent_store: 'localStorage',
assets_path: '/public/'
})
return () => {
converse.connection?.disconnect()
}
}, [xmpp_hostname, xmpp_password, xmpp_username, xmpp_domain, match])
return <div id='converse-container'></div>
}