plugin v1.0.1

This commit is contained in:
JotaChina committed 2025-11-23 17:48:27 -03:00
1 parent 7dd21b5ddc
commit 82e1ff025a
3 files changed
+71 -46

No files matched your search

+11 -10
View File
@@ -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);
});
// -----------------------------------------------------------------------------