Skip to content

Commit 898a8c4

Browse files
fix: incluir runtime Wails v3, ajustar recepção de ips-updated e bump para v2.5.4
1 parent a39c228 commit 898a8c4

5 files changed

Lines changed: 52 additions & 10 deletions

File tree

‎build/darwin/Info.plist‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
<key>CFBundleIdentifier</key>
1414
<string>com.ademartellecher.ipmonitorapp</string>
1515
<key>CFBundleVersion</key>
16-
<string>2.5.3</string>
16+
<string>2.5.4</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>2.5.3</string>
18+
<string>2.5.4</string>
1919
<key>CFBundleIconFile</key>
2020
<string>AppIcon</string>
2121
<key>LSMinimumSystemVersion</key>

‎frontend/app.js‎

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -482,12 +482,49 @@ navEdit.addEventListener('click', () => {
482482
navRemove.addEventListener('click', handleRemove);
483483

484484
// Listener para eventos de atualização de status emitidos pelo backend Go (Wails v3)
485-
if (window.wails && window.wails.Events) {
486-
window.wails.Events.On('ips-updated', (updatedData) => {
487-
renderHosts(updatedData);
488-
});
485+
function handleIpsUpdatedEvent(eventOrData) {
486+
console.log('[IP Monitor] Evento ips-updated recebido do backend:', eventOrData);
487+
const data = (eventOrData && eventOrData.data !== undefined) ? eventOrData.data : eventOrData;
488+
if (data) {
489+
renderHosts(data);
490+
}
489491
}
490492

493+
// Registra listener no Wails Events com retry caso o runtime carregue de forma assíncrona
494+
function setupWailsEventListeners() {
495+
if (window.wails && window.wails.Events && typeof window.wails.Events.On === 'function') {
496+
window.wails.Events.On('ips-updated', handleIpsUpdatedEvent);
497+
console.log('[IP Monitor] Listener Wails v3 para "ips-updated" registrado com sucesso.');
498+
} else {
499+
// Tenta novamente caso o script do runtime demore alguns milissegundos
500+
setTimeout(() => {
501+
if (window.wails && window.wails.Events && typeof window.wails.Events.On === 'function') {
502+
window.wails.Events.On('ips-updated', handleIpsUpdatedEvent);
503+
console.log('[IP Monitor] Listener Wails v3 para "ips-updated" registrado após retry.');
504+
} else {
505+
console.warn('[IP Monitor] Wails runtime não detectado para eventos nativos; operando com fallback.');
506+
}
507+
}, 500);
508+
}
509+
}
510+
511+
// Fallback de polling a cada 60 segundos (garante que a UI sempre atualize mesmo se eventos IPC falharem)
512+
function startPeriodicFallbackSync() {
513+
setInterval(async () => {
514+
try {
515+
const overview = await callGo('list');
516+
if (overview) {
517+
renderHosts(overview);
518+
}
519+
} catch (e) {
520+
console.warn('[IP Monitor] Fallback periódico de sincronização falhou:', e);
521+
}
522+
}, 60000);
523+
}
524+
525+
setupWailsEventListeners();
526+
startPeriodicFallbackSync();
527+
491528
// Carrega a versão dinâmica exposta pelo backend Go
492529
async function loadVersion() {
493530
const badge = document.getElementById('appVersionBadge');

‎frontend/index.html‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
<span class="nav-label">Sobre</span>
112112
<div class="about-tooltip-popover" id="aboutPopover">
113113
<div class="tooltip-header">
114-
<div class="tooltip-badge" id="appVersionBadge">v2.5.3</div>
114+
<div class="tooltip-badge" id="appVersionBadge">v2.5.4</div>
115115
<span class="tooltip-title">IP Monitor App</span>
116116
</div>
117117
<p class="tooltip-text">Monitoramento de conectividade ICMP Ping em tempo real, ultra-leve e portátil.</p>
@@ -258,6 +258,7 @@
258258
<!-- Toast Notification -->
259259
<div id="toast" class="toast hidden"></div>
260260

261+
<script src="/wails/runtime.js"></script>
261262
<script src="app.js"></script>
262263
</body>
263264
</html>

‎internal/version/version.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
package version
22

33
// CurrentVersion é a versão atual da aplicação exposta dinamicamente
4-
const CurrentVersion = "v2.5.3"
4+
const CurrentVersion = "v2.5.4"

‎main.go‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,14 @@ func main() {
7777
ticker := time.NewTicker(1 * time.Minute)
7878
defer ticker.Stop()
7979
for range ticker.C {
80+
log.Println("[IP Monitor] Iniciando varredura periódica automática de 1 minuto...")
8081
updated, err := monitorService.UpdateAllStatuses()
81-
if err == nil {
82-
app.Event.Emit("ips-updated", updated)
82+
if err != nil {
83+
log.Printf("[IP Monitor] Erro na varredura periódica: %v\n", err)
84+
continue
8385
}
86+
log.Printf("[IP Monitor] Varredura periódica concluída com sucesso (%d hosts cadastrados). Emitindo evento ips-updated...\n", updated.Total)
87+
app.Event.Emit("ips-updated", updated)
8488
}
8589
}()
8690

0 commit comments

Comments
 (0)