Skip to content
Snippets Groups Projects
Commit 4d1ebf08 authored by Moritz Langenstein's avatar Moritz Langenstein
Browse files

(ml5717) Fixed indicator bugs

parent 876088d0
No related branches found
No related tags found
1 merge request!47Partial Mesh and connection stability
Pipeline #103662 passed
......@@ -26,30 +26,32 @@ const onRoomConnect = (room_) => {
HTML.connectedPeers.innerHTML = ""
}
insertHTMLPeerElement(id)
getOrInsertPeerById(id)
updateOverallStatusIcon()
})
room.addEventListener("userLeave", ({ detail: id }) => {
HTML.connectedPeers.removeChild(getPeerById(id))
HTML.connectedPeers.removeChild(getOrInsertPeerById(id))
if (HTML.connectedPeers.children.length == 0) {
HTML.connectedPeers.innerHTML = "No peers are connected"
}
updateOverallStatusIcon()
})
room.addEventListener("weSyncedWithPeer", ({ detail: id }) => {
getPeerById(id).children[1].className = "peer-status synced"
getOrInsertPeerById(id).children[1].className = "peer-status synced"
updateOverallStatusIcon()
})
room.addEventListener("waitingForSyncStep", ({ detail: id }) => {
getPeerById(id).children[2].className = "peer-status negotiating"
getOrInsertPeerById(id).children[2].className = "peer-status negotiating"
updateOverallStatusIcon()
})
room.addEventListener("peerSyncedWithUs", ({ detail: id }) => {
getPeerById(id).children[2].className = "peer-status synced"
getOrInsertPeerById(id).children[2].className = "peer-status synced"
updateOverallStatusIcon()
})
......@@ -170,7 +172,14 @@ HTML.roomIDElem.addEventListener("keydown", (event) => {
}
})
const insertHTMLPeerElement = (id) => {
const getOrInsertPeerById = (id) => {
for (const peerElem of HTML.connectedPeers.children) {
const peerId = peerElem.children[0].innerHTML
if (peerId == id) {
return peerElem
}
}
const peerElem = document.createElement("li")
const peerId = document.createElement("div")
peerId.style.display = "inline"
......@@ -187,15 +196,8 @@ const insertHTMLPeerElement = (id) => {
peerElem.appendChild(theirStatus)
HTML.connectedPeers.appendChild(peerElem)
}
const getPeerById = (id) => {
for (const peerElem of HTML.connectedPeers.children) {
const peerId = peerElem.children[0].innerHTML
if (peerId == id) {
return peerElem
}
}
return peerElem
}
const updateOverallStatusIcon = () => {
......
......@@ -73,7 +73,7 @@ self.onmessage = (event) => {
let offset = 0
for (const slice of slices) {
message[slice.message] = offset
message.set(slice.message, offset)
offset += slice.message.length
}
}
......
......@@ -43,12 +43,6 @@ function extend(Y) {
return
}
if (message.type === "sync step 1") {
this.raiseUserEvent("waitingForSyncStep", { user: uid })
} else if (message.type === "sync done") {
this.raiseUserEvent("weSyncedWithPeer", { user: uid })
}
this.webrtc.whisper(this.webrtc.getPeerById(uid), channel, message)
} else if (method == "broadcast") {
const { channel, message } = event.data
......@@ -320,6 +314,12 @@ function extend(Y) {
}
send(uid, message) {
if (message.type === "sync step 1") {
this.raiseUserEvent("waitingForSyncStep", { user: uid })
} else if (message.type === "sync done") {
this.raiseUserEvent("weSyncedWithPeer", { user: uid })
}
this.queue.postMessage({ method: "send", channel: "y-js", uid, message })
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment