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_) => { ...@@ -26,30 +26,32 @@ const onRoomConnect = (room_) => {
HTML.connectedPeers.innerHTML = "" HTML.connectedPeers.innerHTML = ""
} }
insertHTMLPeerElement(id) getOrInsertPeerById(id)
updateOverallStatusIcon() updateOverallStatusIcon()
}) })
room.addEventListener("userLeave", ({ detail: id }) => { room.addEventListener("userLeave", ({ detail: id }) => {
HTML.connectedPeers.removeChild(getPeerById(id)) HTML.connectedPeers.removeChild(getOrInsertPeerById(id))
if (HTML.connectedPeers.children.length == 0) { if (HTML.connectedPeers.children.length == 0) {
HTML.connectedPeers.innerHTML = "No peers are connected" HTML.connectedPeers.innerHTML = "No peers are connected"
} }
updateOverallStatusIcon()
}) })
room.addEventListener("weSyncedWithPeer", ({ detail: id }) => { room.addEventListener("weSyncedWithPeer", ({ detail: id }) => {
getPeerById(id).children[1].className = "peer-status synced" getOrInsertPeerById(id).children[1].className = "peer-status synced"
updateOverallStatusIcon() updateOverallStatusIcon()
}) })
room.addEventListener("waitingForSyncStep", ({ detail: id }) => { room.addEventListener("waitingForSyncStep", ({ detail: id }) => {
getPeerById(id).children[2].className = "peer-status negotiating" getOrInsertPeerById(id).children[2].className = "peer-status negotiating"
updateOverallStatusIcon() updateOverallStatusIcon()
}) })
room.addEventListener("peerSyncedWithUs", ({ detail: id }) => { room.addEventListener("peerSyncedWithUs", ({ detail: id }) => {
getPeerById(id).children[2].className = "peer-status synced" getOrInsertPeerById(id).children[2].className = "peer-status synced"
updateOverallStatusIcon() updateOverallStatusIcon()
}) })
...@@ -170,7 +172,14 @@ HTML.roomIDElem.addEventListener("keydown", (event) => { ...@@ -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 peerElem = document.createElement("li")
const peerId = document.createElement("div") const peerId = document.createElement("div")
peerId.style.display = "inline" peerId.style.display = "inline"
...@@ -187,16 +196,9 @@ const insertHTMLPeerElement = (id) => { ...@@ -187,16 +196,9 @@ const insertHTMLPeerElement = (id) => {
peerElem.appendChild(theirStatus) peerElem.appendChild(theirStatus)
HTML.connectedPeers.appendChild(peerElem) 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 = () => { const updateOverallStatusIcon = () => {
for (const peerElem of HTML.connectedPeers.children) { for (const peerElem of HTML.connectedPeers.children) {
......
...@@ -73,7 +73,7 @@ self.onmessage = (event) => { ...@@ -73,7 +73,7 @@ self.onmessage = (event) => {
let offset = 0 let offset = 0
for (const slice of slices) { for (const slice of slices) {
message[slice.message] = offset message.set(slice.message, offset)
offset += slice.message.length offset += slice.message.length
} }
} }
......
...@@ -43,12 +43,6 @@ function extend(Y) { ...@@ -43,12 +43,6 @@ function extend(Y) {
return 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) this.webrtc.whisper(this.webrtc.getPeerById(uid), channel, message)
} else if (method == "broadcast") { } else if (method == "broadcast") {
const { channel, message } = event.data const { channel, message } = event.data
...@@ -320,6 +314,12 @@ function extend(Y) { ...@@ -320,6 +314,12 @@ function extend(Y) {
} }
send(uid, message) { 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 }) 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.
Please to comment