// // ViewUtiles.swift // Bunch O' Dice // // Created by Rory Hinnen on 22/6/12. // import Foundation import SwiftUI class SheetState: ObservableObject { @Published var isShowing = false @Published var state: State? { didSet { isShowing = state != nil } } } class SettingsSheet: SheetState { enum State { case settings, history } } extension CaseIterable where Self: Equatable { mutating func next() { let allCases = Self.allCases // just a sanity check, as the possibility of a enum case to not be // present in `allCases` is quite low guard let selfIndex = allCases.firstIndex(of: self) else { return } let nextIndex = Self.allCases.index(after: selfIndex) self = allCases[nextIndex == allCases.endIndex ? allCases.startIndex : nextIndex] } }