mirror of
https://github.com/yattee/yattee.git
synced 2026-10-25 14:12:53 +00:00
Delete declarations that Periphery reports unused on every platform that compiles them (iOS, macOS, tvOS), including nine views used only by their own previews. Platform-gated code still used on another platform, device- only MPV render paths, migration models, CloudKit record names, App Intents metadata and unused parameters are kept.
78 lines
2.0 KiB
Swift
78 lines
2.0 KiB
Swift
//
|
|
// GestureSeekPreviewView.swift
|
|
// Yattee
|
|
//
|
|
// Seek preview overlay shown during drag-to-seek gesture.
|
|
//
|
|
|
|
#if os(iOS)
|
|
import SwiftUI
|
|
|
|
/// Preview overlay shown during drag-to-seek gesture.
|
|
/// Shows only the storyboard thumbnail with timestamp overlay.
|
|
struct GestureSeekPreviewView: View {
|
|
let storyboard: Storyboard?
|
|
let seekTime: TimeInterval
|
|
let storyboardService: StoryboardService
|
|
let buttonBackground: ButtonBackgroundStyle
|
|
let chapters: [VideoChapter]
|
|
let isActive: Bool
|
|
var availableWidth: CGFloat = 320
|
|
|
|
@State private var opacity: Double = 0
|
|
|
|
private var currentChapter: VideoChapter? {
|
|
chapters.last { $0.startTime <= seekTime }
|
|
}
|
|
|
|
var body: some View {
|
|
VStack(spacing: 6) {
|
|
if let chapter = currentChapter {
|
|
ChapterCapsuleView(
|
|
title: chapter.title,
|
|
buttonBackground: buttonBackground
|
|
)
|
|
.frame(maxWidth: availableWidth - 16)
|
|
}
|
|
|
|
if let storyboard {
|
|
SeekPreviewView(
|
|
storyboard: storyboard,
|
|
seekTime: seekTime,
|
|
storyboardService: storyboardService,
|
|
buttonBackground: buttonBackground
|
|
)
|
|
}
|
|
}
|
|
.opacity(opacity)
|
|
.onChange(of: isActive) { _, active in
|
|
withAnimation(.easeInOut(duration: 0.2)) {
|
|
opacity = active ? 1 : 0
|
|
}
|
|
}
|
|
.onAppear {
|
|
if isActive {
|
|
withAnimation(.easeOut(duration: 0.15)) {
|
|
opacity = 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#Preview {
|
|
ZStack {
|
|
Color.black
|
|
|
|
GestureSeekPreviewView(
|
|
storyboard: nil,
|
|
seekTime: 180,
|
|
storyboardService: StoryboardService(),
|
|
buttonBackground: .regularGlass,
|
|
chapters: [],
|
|
isActive: true
|
|
)
|
|
}
|
|
}
|
|
#endif
|