Zum Inhalt

apple/PhysarumApp/Sources/TV/TVHintView.swift

#if os(tvOS)
import SwiftUI

/// Bottom startup hint nudging that the preset overlay lives below and is summoned by
/// swiping up. Driven entirely by `AmbientController.hintVisible` (shown on cold launch,
/// auto-fades ~5s or clears on first interaction). Hidden while the overlay is open.
struct TVHintView: View {
    let controller: AmbientController

    var body: some View {
        VStack {
            Spacer()
            if controller.hintVisible && !controller.overlayVisible {
                Label("Click for presets", systemImage: "rectangle.stack")
                    .font(.headline)
                    .padding(.horizontal, 24)
                    .padding(.vertical, 12)
                    .background(.black.opacity(0.45), in: Capsule())
                    .foregroundStyle(.white.opacity(0.9))
                    .padding(.bottom, 24)
                    .transition(.opacity)
            }
        }
        .allowsHitTesting(false)
        .animation(.easeInOut(duration: 0.3), value: controller.hintVisible)
        .animation(.easeInOut(duration: 0.3), value: controller.overlayVisible)
    }
}
#endif