mirror of
https://github.com/yattee/yattee.git
synced 2025-12-15 04:28:14 +00:00
Watch next view
This commit is contained in:
47
Model/WatchNextViewModel.swift
Normal file
47
Model/WatchNextViewModel.swift
Normal 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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user