mirror of
				https://github.com/yattee/yattee.git
				synced 2025-10-31 12:41:57 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
		
			592 B
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			592 B
		
	
	
	
		
			Swift
		
	
	
	
	
	
| import Foundation
 | |
| import Siesta
 | |
| 
 | |
| final class Store<Data>: ResourceObserver, ObservableObject {
 | |
|     @Published private var all: Data?
 | |
| 
 | |
|     var collection: Data { all ?? ([] 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
 | |
|     }
 | |
| }
 | 
