mirror of
https://github.com/yattee/yattee.git
synced 2024-12-22 13:33:42 +00:00
30 lines
614 B
Swift
30 lines
614 B
Swift
import Foundation
|
|
import Siesta
|
|
|
|
final class Store<Data>: ResourceObserver, ObservableObject {
|
|
@Published private var all: Data?
|
|
|
|
var collection: Data { all ?? ([item].compactMap { $0 } as! Data) }
|
|
var item: Data? { all }
|
|
|
|
init(_ data: Data? = nil) {
|
|
if data != nil {
|
|
replace(data!)
|
|
}
|
|
}
|
|
|
|
func resourceChanged(_ resource: Resource, event _: ResourceEvent) {
|
|
if let items: Data = resource.typedContent() {
|
|
replace(items)
|
|
}
|
|
}
|
|
|
|
func replace(_ items: Data) {
|
|
all = items
|
|
}
|
|
|
|
func clear() {
|
|
all = nil
|
|
}
|
|
}
|