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
This commit is contained in:
7 files changed
+57
-11
No files matched your search
@@ -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 @@
|
||||
<!-- Right: Actions & Volume -->
|
||||
<div class="right-section">
|
||||
{#if isOffline}
|
||||
<div
|
||||
<button
|
||||
class="offline-indicator"
|
||||
title={getOfflineReasonText(offlineReason)}
|
||||
role="status"
|
||||
aria-label={getOfflineReasonText(offlineReason)}
|
||||
title={$translateStore('offline.checkNow')}
|
||||
onclick={handleCheckNetwork}
|
||||
aria-label={$translateStore('offline.checkNow')}
|
||||
>
|
||||
<img src="/offline-small.svg" alt="" class="offline-icon" aria-hidden="true" />
|
||||
</div>
|
||||
</button>
|
||||
{/if}
|
||||
|
||||
<button
|
||||
@@ -804,7 +810,14 @@
|
||||
height: 30px;
|
||||
border-radius: 6px;
|
||||
background: rgba(234, 179, 8, 0.15);
|
||||
cursor: help;
|
||||
border: none;
|
||||
padding: 0;
|
||||
cursor: pointer;
|
||||
transition: background-color 150ms ease;
|
||||
}
|
||||
|
||||
.offline-indicator:hover {
|
||||
background: rgba(234, 179, 8, 0.3);
|
||||
}
|
||||
|
||||
.offline-icon {
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
setAllowAccumulatedScrobbling,
|
||||
setShowNetworkFoldersInManualOffline,
|
||||
checkNetwork,
|
||||
refreshStatus,
|
||||
type OfflineStatus,
|
||||
type OfflineSettings
|
||||
} from '$lib/stores/offlineStore';
|
||||
@@ -2373,6 +2374,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
// Force an immediate network check from the settings view
|
||||
async function handleCheckNow() {
|
||||
await refreshStatus();
|
||||
offlineStatus = getOfflineStatus();
|
||||
offlineSettings = getOfflineSettings();
|
||||
}
|
||||
|
||||
// Offline mode handlers
|
||||
async function handleManualOfflineChange(enabled: boolean) {
|
||||
// If enabling offline mode, just do it directly
|
||||
@@ -4742,6 +4750,9 @@
|
||||
{/if}
|
||||
</span>
|
||||
</div>
|
||||
<button class="check-now-btn" onclick={handleCheckNow}>
|
||||
{$t('offline.checkNow')}
|
||||
</button>
|
||||
</div>
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
@@ -6575,6 +6586,23 @@ flatpak override --user --filesystem=/home/USUARIO/Música com.blitzfc.qbz</pre>
|
||||
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;
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in new issue
Block a user