testando ui otimista
This commit is contained in:
1 parent
b5c0e70940
commit
b2bf6254e6
1 file changed
+22
-4
@@ -67,14 +67,32 @@ export function debouncedSyncPatternState() {
|
||||
|
||||
syncXmlTimeout = setTimeout(async () => {
|
||||
try {
|
||||
// Pegamos apenas o JSON do estado atual
|
||||
const patternState = appState.pattern;
|
||||
// 🧹 A MÁGICA AQUI: Criamos um clone limpo apenas com os dados essenciais
|
||||
// ignorando os objetos complexos de áudio que causam o erro circular.
|
||||
const cleanPatternState = {
|
||||
activePatternIndex: appState.pattern.activePatternIndex,
|
||||
tracks: (appState.pattern.tracks || []).map(track => {
|
||||
return {
|
||||
id: track.id,
|
||||
name: track.name,
|
||||
type: track.type,
|
||||
patternIndex: track.patternIndex,
|
||||
isMuted: track.isMuted,
|
||||
volume: track.volume,
|
||||
pan: track.pan,
|
||||
instrumentSourceId: track.instrumentSourceId,
|
||||
parentBasslineId: track.parentBasslineId,
|
||||
patterns: track.patterns,
|
||||
playlist_clips: track.playlist_clips
|
||||
};
|
||||
})
|
||||
};
|
||||
|
||||
// Faz o upload silencioso do JSON
|
||||
// Faz o upload silencioso do JSON na porta correta do backend!
|
||||
await fetch(`https://alice.ufsj.edu.br:${PORT_SOCK}/api/save_room_state`, {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ roomName: currentRoom, patternState }),
|
||||
body: JSON.stringify({ roomName: currentRoom, patternState: cleanPatternState }),
|
||||
});
|
||||
console.log("[Backup] Estado JSON salvo com segurança via HTTP.");
|
||||
} catch (err) {
|
||||
|
||||
Reference in new issue
Block a user