Fix some cases where the chat immediatly close
Peertube events are not fired in the good order. This is a dirty fix: saving the current window location when initializing the chat, and comparing the saved url when navigation-end is triggered.
This commit is contained in:
parent
7b239c9520
commit
aaab1fe604
@ -1,5 +1,11 @@
|
||||
# Changelog
|
||||
|
||||
## v5.0.2
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix some cases where the chat immediatly close (Peertube events are not fired in the good order).
|
||||
|
||||
## v5.0.1
|
||||
|
||||
### Breaking changes
|
||||
|
@ -5,6 +5,15 @@ async function register ({ peertubeHelpers, registerHook, registerVideoField }:
|
||||
handler: () => {
|
||||
const container = document.querySelector('#peertube-plugin-livechat-container')
|
||||
if (container) {
|
||||
const url = container.getAttribute('peertube-plugin-livechat-current-url')
|
||||
if (url && url === window.location.href) {
|
||||
console.warn(
|
||||
'[peertube-plugin-livechat navigation-end] ' +
|
||||
'It seems that action:router.navigation-end was called after action:video-watch.video.loaded. ' +
|
||||
'No removing the chat from the DOM.'
|
||||
)
|
||||
return
|
||||
}
|
||||
container.remove()
|
||||
}
|
||||
}
|
||||
|
@ -289,6 +289,7 @@ function register ({ registerHook, peertubeHelpers }: RegisterOptions): void {
|
||||
container = document.createElement('div')
|
||||
container.setAttribute('id', 'peertube-plugin-livechat-container')
|
||||
container.setAttribute('peertube-plugin-livechat-state', 'initializing')
|
||||
container.setAttribute('peertube-plugin-livechat-current-url', window.location.href)
|
||||
placeholder.append(container)
|
||||
|
||||
peertubeHelpers.getSettings().then((s: any) => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user