Watch next view

This commit is contained in:
Arkadiusz Fal
2022-12-18 00:08:30 +01:00
parent fcf527fa87
commit eca685ae29
17 changed files with 349 additions and 58 deletions

View File

@@ -0,0 +1,47 @@
import Foundation
import SwiftUI
final class WatchNextViewModel: ObservableObject {
static let animation = Animation.easeIn(duration: 0.25)
static let shared = WatchNextViewModel()
@Published var item: PlayerQueueItem?
@Published var presentingOutro = true
@Published var isAutoplaying = true
var timer: Timer?
func prepareForEmptyPlayerPlaceholder(_ item: PlayerQueueItem? = nil) {
self.item = item
}
func prepareForNextItem(_ item: PlayerQueueItem? = nil, timer: Timer? = nil) {
self.item = item
self.timer?.invalidate()
self.timer = timer
isAutoplaying = true
withAnimation(Self.animation) {
presentingOutro = true
}
}
func cancelAutoplay() {
timer?.invalidate()
isAutoplaying = false
}
func open() {
withAnimation(Self.animation) {
presentingOutro = true
}
}
func close() {
withAnimation(Self.animation) {
presentingOutro = false
}
}
func resetItem() {
item = nil
}
}