all features implemented
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
//
|
||||
// ViewUtiles.swift
|
||||
// Bunch O' Dice
|
||||
//
|
||||
// Created by Rory Hinnen on 22/6/12.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import SwiftUI
|
||||
|
||||
class SheetState<State>: ObservableObject {
|
||||
@Published var isShowing = false
|
||||
@Published var state: State? {
|
||||
didSet { isShowing = state != nil }
|
||||
}
|
||||
}
|
||||
|
||||
class SettingsSheet: SheetState<SettingsSheet.State> {
|
||||
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]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user