diff --git a/src/app.js b/src/app.js index 8eacaea26ff1ebe56084325b41e6806925165b3b..838c957f6cbeed516eda5e1e43895725ba801f36 100644 --- a/src/app.js +++ b/src/app.js @@ -14,8 +14,17 @@ import * as humanhash from "humanhash" import jdenticon from "jdenticon" const DEFAULT_ROOM = "imperial" -const initialRoom = - new URLSearchParams(location.search).get("room") || DEFAULT_ROOM + +const navigateToRoom = (roomID) => { + const url = new URL(location.href) + url.searchParams.set("room", roomID) + location.href = url +} + +const initialRoom = new URLSearchParams(location.search).get("room") +if (initialRoom == null) { + navigateToRoom(DEFAULT_ROOM) +} const MIN_PRESSURE_FACTOR = 0.1 const MAX_PRESSURE_FACTOR = 1.5 @@ -362,22 +371,7 @@ HTML.peerButton.addEventListener("click", () => { }) const onRoomJoinEnter = () => { - const selectedRoomID = HTML.roomIDElem.value - if (!selectedRoomID || selectedRoomID == room.name) { - return - } - - if (room != null) { - room.disconnect() - room = null - } - - canvas.clear() - HTML.connectedPeers.innerHTML = "No peers are connected" - HTML.fastUndoButton.classList.add("disabled") - HTML.undoButton.classList.add("disabled") - - tryRoomConnect(selectedRoomID) + navigateToRoom(HTML.roomIDElem.value) } HTML.roomConnectButton.addEventListener("click", onRoomJoinEnter) diff --git a/src/server.js b/src/server.js index cf912eeaf5c06537a24065d5f56dbd6df86cdf63..d76e14fb84356ce37c4c2e867e0bae8e1c418d05 100644 --- a/src/server.js +++ b/src/server.js @@ -45,6 +45,17 @@ app.use((request, response, next) => { next() }) +app.get("/", (request, response, next) => { + if (request.query.room == null) { + const url = new URL( + `${request.protocol}://${request.get("host")}${request.originalUrl}`, + ) + url.searchParams.set("room", "imperial") + return response.redirect(url) + } + next() +}) + app.use("/", express.static("public")) server.listen(port, host, () => {