From ac88912316076e2cc0835b07717b4d391f643916 Mon Sep 17 00:00:00 2001 From: Arkadiusz Fal Date: Sun, 11 Oct 2026 22:35:18 +0200 Subject: [PATCH] Ask Play Now/Play Next when a video is playing with an empty queue --- Yattee/Views/Components/TappableVideoModifier.swift | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Yattee/Views/Components/TappableVideoModifier.swift b/Yattee/Views/Components/TappableVideoModifier.swift index f7761b1b..9d48705c 100644 --- a/Yattee/Views/Components/TappableVideoModifier.swift +++ b/Yattee/Views/Components/TappableVideoModifier.swift @@ -8,8 +8,8 @@ import SwiftUI /// View modifier that wraps content in a button that plays a video when tapped. -/// When queue is enabled and not empty, shows a sheet with queue options. -/// When queue is empty or disabled, plays the video directly and queues subsequent videos. +/// When queue is enabled and a video is playing or queued, shows a sheet with queue options. +/// When nothing is playing or queue is disabled, plays the video directly and queues subsequent videos. struct TappableVideoModifier: ViewModifier { @Environment(\.appEnvironment) private var appEnvironment @Environment(\.presentAppSheet) private var presentAppSheet @@ -36,12 +36,14 @@ struct TappableVideoModifier: ViewModifier { @State private var sourceNeedingPassword: MediaSource? @State private var passwordInput = "" - /// Whether queue feature is enabled and queue has items + /// Whether queue feature is enabled and something is playing or queued, + /// so "Play Next" / "Add to Queue" are meaningful alternatives to replacing playback. private var shouldShowQueueSheet: Bool { guard let env = appEnvironment else { return false } let queueEnabled = env.settingsManager.queueEnabled - let queueHasItems = !env.playerService.state.queue.isEmpty - return queueEnabled && queueHasItems + let state = env.playerService.state + let hasActivePlayback = state.currentVideo != nil || !state.queue.isEmpty + return queueEnabled && hasActivePlayback } func body(content: Content) -> some View {