TEDDyx86 commited on
Commit
55109be
·
1 Parent(s): e2cac58

Fix confidence circle animation and reset logic v2.3

Browse files
Files changed (4) hide show
  1. dashboard/app.js +14 -3
  2. dashboard/index.html +2 -2
  3. dashboard/style.css +1 -1
  4. main.py +1 -1
dashboard/app.js CHANGED
@@ -61,8 +61,17 @@ async function handleUpload(file) {
61
  }
62
 
63
  if (confidencePath) {
 
 
 
 
64
  confidencePath.style.stroke = PROCESSING_COLOR;
65
- confidencePath.style.strokeDasharray = '0 100';
 
 
 
 
 
66
  }
67
 
68
  specContainer.innerHTML = '<div class="image-placeholder">Analisando frequências...</div>';
@@ -129,8 +138,10 @@ function displayResults(data) {
129
  if (pulseDot) pulseDot.style.background = '#10B981';
130
  }
131
 
132
- // Animação do círculo - Usando .style para garantir prioridade sobre o CSS
133
- confidencePath.style.strokeDasharray = `${fraudProb} 100`;
 
 
134
  }
135
  // Atualiza Espectrograma
136
  // Atualiza Espectrograma e Heatmap (XAI)
 
61
  }
62
 
63
  if (confidencePath) {
64
+ // Desativa transição para reset instantâneo
65
+ confidencePath.style.transition = 'none';
66
+ confidencePath.style.strokeDasharray = '100';
67
+ confidencePath.style.strokeDashoffset = '100';
68
  confidencePath.style.stroke = PROCESSING_COLOR;
69
+
70
+ // Força reflow para garantir que o reset ocorra antes da nova animação
71
+ confidencePath.getBoundingClientRect();
72
+
73
+ // Reativa a transição
74
+ confidencePath.style.transition = 'stroke-dashoffset 1.5s cubic-bezier(0.4, 0, 0.2, 1), stroke 0.5s ease';
75
  }
76
 
77
  specContainer.innerHTML = '<div class="image-placeholder">Analisando frequências...</div>';
 
138
  if (pulseDot) pulseDot.style.background = '#10B981';
139
  }
140
 
141
+ // Animação do círculo usando stroke-dashoffset para completar a linha corretamente
142
+ // Com r=15.9155, a circunferência é exatamente 100.
143
+ confidencePath.style.strokeDasharray = '100';
144
+ confidencePath.style.strokeDashoffset = 100 - fraudProb;
145
  }
146
  // Atualiza Espectrograma
147
  // Atualiza Espectrograma e Heatmap (XAI)
dashboard/index.html CHANGED
@@ -104,7 +104,7 @@
104
  <div class="confidence-circle">
105
  <svg viewBox="0 0 36 36" class="circular-chart">
106
  <circle class="circle-bg" cx="18" cy="18" r="15.9155" />
107
- <circle id="confidence-path" class="progress" cx="18" cy="18" r="15.9155" stroke-dasharray="0, 100" />
108
  </svg>
109
  <div class="confidence-text">
110
  <span id="confidence-value">0%</span>
@@ -273,7 +273,7 @@
273
 
274
  <div class="footer-content">
275
 
276
- <p>&copy; 2026 CONFEREAI - Protegendo a integridade da voz humana.</p>
277
 
278
  <div class="footer-links">
279
 
 
104
  <div class="confidence-circle">
105
  <svg viewBox="0 0 36 36" class="circular-chart">
106
  <circle class="circle-bg" cx="18" cy="18" r="15.9155" />
107
+ <circle id="confidence-path" class="progress" cx="18" cy="18" r="15.9155" stroke-dasharray="100" stroke-dashoffset="100" />
108
  </svg>
109
  <div class="confidence-text">
110
  <span id="confidence-value">0%</span>
 
273
 
274
  <div class="footer-content">
275
 
276
+ <p>&copy; 2026 CONFEREAI - Protegendo a integridade da voz humana. v2.3</p>
277
 
278
  <div class="footer-links">
279
 
dashboard/style.css CHANGED
@@ -300,7 +300,7 @@ nav {
300
  stroke: var(--primary);
301
  stroke-width: 4;
302
  filter: drop-shadow(0 0 8px var(--accent-glow));
303
- transition: stroke-dasharray 1.5s cubic-bezier(0.4, 0, 0.2, 1), stroke 0.5s ease;
304
  stroke-linecap: round;
305
  }
306
 
 
300
  stroke: var(--primary);
301
  stroke-width: 4;
302
  filter: drop-shadow(0 0 8px var(--accent-glow));
303
+ transition: stroke-dashoffset 1.5s cubic-bezier(0.4, 0, 0.2, 1), stroke 0.5s ease;
304
  stroke-linecap: round;
305
  }
306
 
main.py CHANGED
@@ -9,4 +9,4 @@ if __name__ == "__main__":
9
 
10
  @app.get("/version-check")
11
  async def version_check():
12
- return {"version": "2.2", "status": "updated"}
 
9
 
10
  @app.get("/version-check")
11
  async def version_check():
12
+ return {"version": "2.3", "status": "updated"}