jellyflood/Shared/ViewModels/SpecialFeaturesViewModel.swift

31 lines
992 B
Swift

//
// Swiftfin is subject to the terms of the Mozilla Public
// License, v2.0. If a copy of the MPL was not distributed with this
// file, you can obtain one at https://mozilla.org/MPL/2.0/.
//
// Copyright (c) 2023 Jellyfin & Jellyfin Contributors
//
import Foundation
import JellyfinAPI
class SpecialFeaturesViewModel: ViewModel, MenuPosterHStackModel {
@Published
var menuSelection: SpecialFeatureType?
@Published
var menuSections: [SpecialFeatureType: [BaseItemDto]]
var menuSectionSort: (SpecialFeatureType, SpecialFeatureType) -> Bool
init(sections: [SpecialFeatureType: [BaseItemDto]]) {
let comparator: (SpecialFeatureType, SpecialFeatureType) -> Bool = { i, j in i.rawValue < j.rawValue }
self.menuSelection = Array(sections.keys).sorted(by: comparator).first!
self.menuSections = sections
self.menuSectionSort = comparator
}
func select(section: SpecialFeatureType) {
self.menuSelection = section
}
}