Fix sleep bug, fix menu return
🏗️ Build and Test JellyTau / Run Tests (push) Successful in 4m1s
Traceability Validation / Check Requirement Traces (push) Successful in 23s
Build & Release / Run Tests (push) Successful in 4m7s
🏗️ Build and Test JellyTau / Build Android APK (push) Successful in 19m5s
Build & Release / Build Linux (push) Successful in 16m20s
Build & Release / Build Android (push) Successful in 19m12s
Build & Release / Create Release (push) Successful in 8s
🏗️ Build and Test JellyTau / Run Tests (push) Successful in 4m1s
Traceability Validation / Check Requirement Traces (push) Successful in 23s
Build & Release / Run Tests (push) Successful in 4m7s
🏗️ Build and Test JellyTau / Build Android APK (push) Successful in 19m5s
Build & Release / Build Linux (push) Successful in 16m20s
Build & Release / Build Android (push) Successful in 19m12s
Build & Release / Create Release (push) Successful in 8s
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
<script lang="ts">
|
||||
import { page } from '$app/stores';
|
||||
import { goto } from '$app/navigation';
|
||||
import { library } from '$lib/stores/library';
|
||||
|
||||
// When a className is supplied the parent positions this bar (e.g. inside a
|
||||
// measured in-flow stack); otherwise it self-positions as a fixed bottom bar.
|
||||
@@ -47,7 +48,7 @@
|
||||
|
||||
<!-- Library Button -->
|
||||
<button
|
||||
onclick={() => goto('/library')}
|
||||
onclick={() => { library.setCurrentLibrary(null); goto('/library'); }}
|
||||
class="flex flex-col items-center gap-1 py-2 px-4 transition-colors {isActive('/library') ? 'text-[var(--color-jellyfin)]' : 'text-gray-400 hover:text-white'}"
|
||||
aria-label="Library"
|
||||
>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
import SleepTimerModal from "./SleepTimerModal.svelte";
|
||||
import SleepTimerIndicator from "./SleepTimerIndicator.svelte";
|
||||
import CachedImage from "../common/CachedImage.svelte";
|
||||
import { sleepTimerActive } from "$lib/stores/sleepTimer";
|
||||
import { sleepTimerActive, sleepTimerExpiredSignal } from "$lib/stores/sleepTimer";
|
||||
|
||||
interface Props {
|
||||
media: MediaItem | null;
|
||||
@@ -209,6 +209,21 @@
|
||||
});
|
||||
|
||||
|
||||
// Pause playback when the time-based sleep timer expires. The backend stops
|
||||
// its own (MPV/ExoPlayer) playback itself, but the HTML5 <video> element
|
||||
// plays in the webview outside the backend's control, so it must be paused
|
||||
// here or the sleep timer never actually stops video playback on Linux.
|
||||
let lastSleepExpirySeen = $sleepTimerExpiredSignal;
|
||||
$effect(() => {
|
||||
if ($sleepTimerExpiredSignal !== lastSleepExpirySeen) {
|
||||
lastSleepExpirySeen = $sleepTimerExpiredSignal;
|
||||
if (useHtml5Element && videoElement && !videoElement.paused) {
|
||||
console.log("[VideoPlayer] Sleep timer expired - pausing playback");
|
||||
videoElement.pause();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Set up HLS.js for HLS streams
|
||||
$effect(() => {
|
||||
if (!useHtml5Element || !videoElement || !currentStreamUrl) {
|
||||
|
||||
Reference in New Issue
Block a user