plugin v1.0.1
This commit is contained in:
1 parent
7dd21b5ddc
commit
82e1ff025a
3 files changed
+71
-46
No files matched your search
@@ -198,35 +198,36 @@ socket.on("load_project_state", async (projectXml) => {
|
||||
showToast("🎵 Projeto carregado com sucesso", "success");
|
||||
|
||||
// --- INÍCIO DA CORREÇÃO ---
|
||||
// Mova a lógica de snapshot para AQUI.
|
||||
// Só peça um snapshot DEPOIS que o XML foi carregado
|
||||
// e SE o XML (appState) não tiver áudio.
|
||||
const hasAudio =
|
||||
(appState.audio?.clips?.length || 0) > 0 ||
|
||||
(appState.audio?.tracks?.length || 0) > 0;
|
||||
|
||||
if (!hasAudio && currentRoom) {
|
||||
console.log(
|
||||
"Projeto XML carregado, sem áudio. Pedindo snapshot de áudio..."
|
||||
);
|
||||
// O 'sendAction' agora é chamado daqui, não do joinRoom.
|
||||
|
||||
// 🔥 FIX CRÍTICO: Libera a trava IMEDIATAMENTE antes de pedir
|
||||
// Caso contrário, a resposta chega muito rápido e cai no bloqueio "justReset=true"
|
||||
appState.global.justReset = false;
|
||||
|
||||
sendAction({ type: "AUDIO_SNAPSHOT_REQUEST" });
|
||||
}
|
||||
// --- FIM DA CORREÇÃO ---
|
||||
|
||||
} catch (e) {
|
||||
console.error("Erro ao carregar projeto:", e);
|
||||
showToast("❌ Erro ao carregar projeto", "error");
|
||||
}
|
||||
isLoadingProject = false;
|
||||
// Desativa a flag de reset após um delay.
|
||||
// Isso dá tempo para a "condição de corrida" (o snapshot sujo)
|
||||
// ser recebida e ignorada.
|
||||
|
||||
// Mantemos o timeout apenas como segurança extra para outros casos
|
||||
setTimeout(() => {
|
||||
if (appState.global.justReset) {
|
||||
console.log("Socket: Limpando flag 'justReset'.");
|
||||
// console.log("Socket: Limpando flag 'justReset' (timeout).");
|
||||
appState.global.justReset = false;
|
||||
}
|
||||
}, 250); // 2.5 segundos de "janela de proteção"
|
||||
// --- FIM DA CORREÇÃO ---
|
||||
}, 250);
|
||||
});
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
Reference in new issue
Block a user