One more socket listener moved to Portal (#1507)
* room-user-change listener moved to Portal * Eliminate useless checks * Update src/components/App.tsx Co-Authored-By: Lipis <lipiridis@gmail.com> Co-authored-by: Lipis <lipiridis@gmail.com>
This commit is contained in:
parent
77f76a263b
commit
dd1dfc5950
@ -971,22 +971,6 @@ class App extends React.Component<any, AppState> {
|
|||||||
}
|
}
|
||||||
initialize();
|
initialize();
|
||||||
});
|
});
|
||||||
this.portal.socket!.on("room-user-change", (clients: string[]) => {
|
|
||||||
this.setState((state) => {
|
|
||||||
const collaborators: typeof state.collaborators = new Map();
|
|
||||||
for (const socketID of clients) {
|
|
||||||
if (state.collaborators.has(socketID)) {
|
|
||||||
collaborators.set(socketID, state.collaborators.get(socketID)!);
|
|
||||||
} else {
|
|
||||||
collaborators.set(socketID, {});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
collaborators,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
isCollaborating: true,
|
isCollaborating: true,
|
||||||
@ -995,6 +979,24 @@ class App extends React.Component<any, AppState> {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Portal-only
|
||||||
|
setCollaborators(sockets: string[]) {
|
||||||
|
this.setState((state) => {
|
||||||
|
const collaborators: typeof state.collaborators = new Map();
|
||||||
|
for (const socketID of sockets) {
|
||||||
|
if (state.collaborators.has(socketID)) {
|
||||||
|
collaborators.set(socketID, state.collaborators.get(socketID)!);
|
||||||
|
} else {
|
||||||
|
collaborators.set(socketID, {});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
collaborators,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private broadcastMouseLocation = (payload: {
|
private broadcastMouseLocation = (payload: {
|
||||||
pointerCoords: SocketUpdateDataSource["MOUSE_LOCATION"]["payload"]["pointerCoords"];
|
pointerCoords: SocketUpdateDataSource["MOUSE_LOCATION"]["payload"]["pointerCoords"];
|
||||||
button: SocketUpdateDataSource["MOUSE_LOCATION"]["payload"]["button"];
|
button: SocketUpdateDataSource["MOUSE_LOCATION"]["payload"]["button"];
|
||||||
|
@ -21,16 +21,19 @@ class Portal {
|
|||||||
this.roomKey = key;
|
this.roomKey = key;
|
||||||
|
|
||||||
// Initialize socket listeners (moving from App)
|
// Initialize socket listeners (moving from App)
|
||||||
this.socket!.on("init-room", () => {
|
this.socket.on("init-room", () => {
|
||||||
if (this.socket) {
|
if (this.socket) {
|
||||||
this.socket.emit("join-room", this.roomID);
|
this.socket.emit("join-room", this.roomID);
|
||||||
|
|
||||||
this.app.restoreUserName();
|
this.app.restoreUserName();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.socket!.on("new-user", async (_socketID: string) => {
|
this.socket.on("new-user", async (_socketID: string) => {
|
||||||
this.app.broadcastScene(SCENE.INIT);
|
this.app.broadcastScene(SCENE.INIT);
|
||||||
});
|
});
|
||||||
|
this.socket.on("room-user-change", (clients: string[]) => {
|
||||||
|
this.app.setCollaborators(clients);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
close() {
|
close() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user