From cf2df33bc4c2a0579b1b3d16602a37206943670d Mon Sep 17 00:00:00 2001 From: victorrhgap Date: Wed, 25 Mar 2026 16:46:53 -0600 Subject: [PATCH] feat(offline): add manual network check button Make NowPlayingBar offline indicator clickable to force immediate network check. Add Check Now button in Settings offline section. cc --- src/lib/components/NowPlayingBar.svelte | 25 ++++++++++++----- src/lib/components/views/SettingsView.svelte | 28 ++++++++++++++++++++ src/lib/i18n/locales/de.json | 3 ++- src/lib/i18n/locales/en.json | 3 ++- src/lib/i18n/locales/es.json | 3 ++- src/lib/i18n/locales/fr.json | 3 ++- src/lib/i18n/locales/pt.json | 3 ++- 7 files changed, 57 insertions(+), 11 deletions(-) diff --git a/src/lib/components/NowPlayingBar.svelte b/src/lib/components/NowPlayingBar.svelte index ca4433fa1..0d3ab7e8d 100644 --- a/src/lib/components/NowPlayingBar.svelte +++ b/src/lib/components/NowPlayingBar.svelte @@ -28,6 +28,7 @@ subscribe as subscribeOffline, isOffline as checkIsOffline, getOfflineReason, + refreshStatus, type OfflineReason } from '$lib/stores/offlineStore'; import { toggleMute } from '$lib/stores/playerStore'; @@ -174,6 +175,11 @@ } } + // Force an immediate network check when the offline indicator is clicked + async function handleCheckNetwork() { + await refreshStatus(); + } + const effectiveTime = $derived(dragPreviewTime ?? currentTime); const progress = $derived(duration > 0 ? (effectiveTime / duration) * 100 : 0); const hasTrack = $derived(trackTitle !== ''); @@ -420,14 +426,14 @@
{#if isOffline} -
-
+ {/if}
+
@@ -6575,6 +6586,23 @@ flatpak override --user --filesystem=/home/USUARIO/Música com.blitzfc.qbz cursor: not-allowed; } + .check-now-btn { + padding: 6px 14px; + border-radius: 8px; + border: 1px solid var(--border-subtle); + background: var(--bg-tertiary); + color: var(--text-secondary); + font-size: 0.85rem; + font-weight: 500; + cursor: pointer; + transition: background-color 150ms ease, color 150ms ease; + } + + .check-now-btn:hover { + background: var(--bg-hover); + color: var(--text-primary); + } + .reset-btn { padding: 8px 16px; border-radius: 8px; diff --git a/src/lib/i18n/locales/de.json b/src/lib/i18n/locales/de.json index 39360880f..678f341b1 100644 --- a/src/lib/i18n/locales/de.json +++ b/src/lib/i18n/locales/de.json @@ -1472,7 +1472,8 @@ "allowAccumulatedScrobblingDesc": "Scrobbles in Warteschlange stellen und später synchronisieren, wenn wieder online", "scrobbleTimeLimit": "Last.fm akzeptiert Scrobbles bis zu 2 Wochen alt", "showNetworkFolders": "Netzwerkordner-Inhalt anzeigen", - "showNetworkFoldersDesc": "Inhalte aus eingebundenen Netzwerkordnern (NAS, Samba usw.) im manuellen Offline-Modus anzeigen" + "showNetworkFoldersDesc": "Inhalte aus eingebundenen Netzwerkordnern (NAS, Samba usw.) im manuellen Offline-Modus anzeigen", + "checkNow": "Jetzt pruefen" }, "download": { "makeAvailable": "Offline verfügbar machen", diff --git a/src/lib/i18n/locales/en.json b/src/lib/i18n/locales/en.json index 9a75d5e54..d1e8eb4d6 100644 --- a/src/lib/i18n/locales/en.json +++ b/src/lib/i18n/locales/en.json @@ -1580,7 +1580,8 @@ "allowAccumulatedScrobblingDesc": "Queue scrobbles for later when back online", "scrobbleTimeLimit": "Last.fm accepts scrobbles up to 2 weeks old", "showNetworkFolders": "Show Network Folder Content", - "showNetworkFoldersDesc": "Display content from network-mounted folders (NAS, Samba, etc.) while in manual offline mode" + "showNetworkFoldersDesc": "Display content from network-mounted folders (NAS, Samba, etc.) while in manual offline mode", + "checkNow": "Check now" }, "download": { "makeAvailable": "Make available offline", diff --git a/src/lib/i18n/locales/es.json b/src/lib/i18n/locales/es.json index 3783caa7c..4a578fe9b 100644 --- a/src/lib/i18n/locales/es.json +++ b/src/lib/i18n/locales/es.json @@ -1581,7 +1581,8 @@ "allowAccumulatedScrobblingDesc": "Almacenar scrobbles para enviar cuando vuelvas a estar en linea", "scrobbleTimeLimit": "Last.fm acepta scrobbles de hasta 2 semanas de antiguedad", "showNetworkFolders": "Mostrar Contenido de Carpetas de Red", - "showNetworkFoldersDesc": "Mostrar contenido de carpetas montadas en red (NAS, Samba, etc.) mientras estas en modo offline manual" + "showNetworkFoldersDesc": "Mostrar contenido de carpetas montadas en red (NAS, Samba, etc.) mientras estas en modo offline manual", + "checkNow": "Verificar ahora" }, "download": { "makeAvailable": "Hacer disponible offline", diff --git a/src/lib/i18n/locales/fr.json b/src/lib/i18n/locales/fr.json index 3f1d88bb1..5cf786475 100644 --- a/src/lib/i18n/locales/fr.json +++ b/src/lib/i18n/locales/fr.json @@ -1493,7 +1493,8 @@ "allowAccumulatedScrobblingDesc": "Mettre les scrobbles en file d'attente pour plus tard lorsque vous serez de nouveau en ligne", "scrobbleTimeLimit": "Last.fm accepte les scrobbles jusqu'à 2 semaines", "showNetworkFolders": "Afficher le contenu du dossier réseau", - "showNetworkFoldersDesc": "Afficher le contenu des dossiers montés en réseau (NAS, Samba, etc.) en mode hors ligne manuel" + "showNetworkFoldersDesc": "Afficher le contenu des dossiers montés en réseau (NAS, Samba, etc.) en mode hors ligne manuel", + "checkNow": "Verifier maintenant" }, "download": { "makeAvailable": "Rendre disponible hors ligne", diff --git a/src/lib/i18n/locales/pt.json b/src/lib/i18n/locales/pt.json index 97a58778c..0979f4dab 100644 --- a/src/lib/i18n/locales/pt.json +++ b/src/lib/i18n/locales/pt.json @@ -1567,7 +1567,8 @@ "allowAccumulatedScrobblingDesc": "Enfileirar scrobbles para enviar depois quando voltar online", "scrobbleTimeLimit": "O Last.fm aceita scrobbles de até 2 semanas atrás", "showNetworkFolders": "Mostrar Conteúdo de Pastas de Rede", - "showNetworkFoldersDesc": "Exibir conteúdo de pastas montadas em rede (NAS, Samba, etc.) no modo offline manual" + "showNetworkFoldersDesc": "Exibir conteúdo de pastas montadas em rede (NAS, Samba, etc.) no modo offline manual", + "checkNow": "Verificar agora" }, "download": { "makeAvailable": "Disponibilizar offline",