Add Async image loading

This commit is contained in:
Ivan Vorobei
2019-06-06 22:24:34 +03:00
parent dbabd124fb
commit bcedea412a
914 changed files with 164 additions and 1 deletions

View File

@@ -0,0 +1,7 @@
import SwiftUI
struct TodoItem: Identifiable {
var id: UUID
var title: String
var isFinished: Bool
}

View File

@@ -0,0 +1,39 @@
import SwiftUI
struct TodoState {
var isCreatingItem: Bool = false
var partialItemName: String = ""
var todoItems: [TodoItem] = []
}
extension TodoState: StateMachine {
enum Event {
case startCreatingItem
case cancelCreatingItem
case changePartialItemName(String)
case addItem
case setItemDone(identifier: UUID, isDone: Bool)
}
mutating func update(with event: TodoState.Event) {
switch event {
case .addItem:
todoItems.append(TodoItem(id: UUID(), title: partialItemName, isFinished: false))
partialItemName = ""
isCreatingItem = false
case .changePartialItemName(let name):
partialItemName = name
case .cancelCreatingItem:
isCreatingItem = false
case .startCreatingItem:
isCreatingItem = true
partialItemName = ""
case .setItemDone(let identifier, let isDone):
if let index = todoItems.firstIndex(where: { $0.id == identifier }) {
todoItems[index].isFinished = isDone
}
}
}
}