diff --git a/assets/js/creations/main.js b/assets/js/creations/main.js index 06113b71..44829b21 100755 --- a/assets/js/creations/main.js +++ b/assets/js/creations/main.js @@ -679,7 +679,6 @@ document.addEventListener("DOMContentLoaded", () => { } }); } - // Criar sala (gera link com ?room=...) if (createRoomBtn) { createRoomBtn.addEventListener("click", () => { @@ -687,32 +686,26 @@ document.addEventListener("DOMContentLoaded", () => { const currentParams = new URLSearchParams(window.location.search); if (currentParams.has("room")) { alert( - `Você já está na sala: ${currentParams.get( - "room" - )}\n\Copie o link da barra de endereços para convidar.` + `Você já está na sala: ${currentParams.get("room")}\n\nCopie o link da barra de endereços para convidar.` ); return; } - const defaultName = `sessao-${Math.random() - .toString(36) - .substring(2, 7)}`; - // 🔥 O PEDÁGIO: Pede o login ANTES de avisar o servidor! - const myName = await getOrFetchUsername(); - // Agora sim envia com os dados completos - socket.emit("join_room", { - roomName: novaSala, - userName: myName - }); + // 1. Gera o nome padrão + const defaultName = `sessao-${Math.random().toString(36).substring(2, 7)}`; + + // 2. Pergunta qual nome o usuário quer const roomName = prompt( "Digite um nome para a sala compartilhada:", defaultName ); - if (!roomName) return; + if (!roomName) return; // Se o usuário cancelar, para aqui. + + // 3. Monta o link const currentUrl = window.location.origin + window.location.pathname; - const shareableLink = `${currentUrl}?room=${encodeURIComponent( - roomName - )}`; + const shareableLink = `${currentUrl}?room=${encodeURIComponent(roomName)}`; + + // 4. Copia para a área de transferência try { navigator.clipboard.writeText(shareableLink); alert( @@ -723,6 +716,9 @@ document.addEventListener("DOMContentLoaded", () => { `Link da sala: ${shareableLink}\n\nA página será recarregada agora para entrar na nova sala.` ); } + + // 5. Recarrega a página! + // (Isso vai ativar o socket.on("connect") que criamos, e ele vai pedir o Login perfeitamente!) window.location.href = shareableLink; }); } diff --git a/assets/js/creations/socket.js b/assets/js/creations/socket.js index 859b47d4..259bfa78 100755 --- a/assets/js/creations/socket.js +++ b/assets/js/creations/socket.js @@ -50,7 +50,6 @@ import { updateStepUI, renderPatternEditor } from "./pattern/pattern_ui.js"; import { PORT_SOCK } from "./config.js"; import { DEFAULT_PROJECT_XML } from "./utils.js" -// --- NO TOPO DO SEU socket.js --- export let USER_NAME = null; export let currentRoom = null; let roomSeq = 0; @@ -191,7 +190,6 @@ function delayFromServerTimeMs(scheduleAtServerMs) { let lastActionTimeout = null; let lastBroadcastTimeout = null; let pendingToken = null; -let lastActionToken = 0; const processedTokens = new Set(); // -----------------------------------------------------------------------------