Files
blob-menu/Sources/Models/BlobMenuModel.swift

32 lines
884 B
Swift

//
// BlobMenuMode.swift
// BlobMenu
//
// Created by Igor K. on 22.05.2020.
// Copyright © 2020 Ramotion. All rights reserved.
//
import Foundation
import SwiftUI
public final class BlobMenuModel: ObservableObject {
@Published public var items: [BlobMenuItem]
@Published public var isOpened: Bool
@Published public internal(set) var selectedIndex: Int
@Published public internal(set) var isBlobMenuItemsVisible: Bool = false
public init(items: [BlobMenuItem],
selectedIndex: Int = 0,
isOpened: Bool = false) {
self.items = items
self.isOpened = isOpened
self.selectedIndex = selectedIndex.limited(0, items.count - 1)
}
public func selectIndex(_ index: Int) {
let limitedIndex = selectedIndex.limited(0, items.count - 1)
selectedIndex = limitedIndex
}
}