TeraTodayNavigation.swift (1148B)
1 import SwiftUI 2 3 /// A scope change also ends the lifetime of its details and supporting sheets. 4 struct TeraTodayNavigation: View { 5 let snapshot: TeraRuntimeSnapshot 6 let stores: TeraProductStores 7 let selectAdd: () -> Void 8 @ObservedObject private var today: TeraTodayStore 9 10 init(snapshot: TeraRuntimeSnapshot, stores: TeraProductStores, selectAdd: @escaping () -> Void) { 11 self.snapshot = snapshot 12 self.stores = stores 13 self.selectAdd = selectAdd 14 today = stores.today 15 } 16 17 var body: some View { 18 NavigationStack { 19 TeraTodayView( 20 snapshot: snapshot, 21 store: today, 22 searchStore: stores.search, 23 meStore: stores.me, 24 addStore: stores.add, 25 settingsStore: stores.settings, 26 mediaStore: stores.media, 27 revise: { card in 28 Task { 29 await stores.add.retractAndRevise(card) 30 selectAdd() 31 } 32 }, 33 retract: { card in 34 Task { 35 await stores.add.retract(card) 36 selectAdd() 37 } 38 } 39 ) 40 } 41 .id(today.scopeGeneration) 42 .environmentObject(stores.visibility) 43 } 44 }