import SwiftUI struct CollectionListView: View { @EnvironmentObject var model: WriteFreelyModel @Environment(\.managedObjectContext) var moc @FetchRequest(entity: WFACollection.entity(), sortDescriptors: []) var collections: FetchedResults var body: some View { List { NavigationLink(destination: PostListView(selectedCollection: CollectionListModel.allPostsCollection)) { Text(CollectionListModel.allPostsCollection.title) } NavigationLink(destination: PostListView(selectedCollection: CollectionListModel.draftsCollection)) { Text(CollectionListModel.draftsCollection.title) } Section(header: Text("Your Blogs")) { ForEach(collections, id: \.alias) { collection in NavigationLink( destination: PostListView(selectedCollection: PostCollection(title: collection.title)) ) { Text(collection.title) } } } } .navigationTitle("Collections") .listStyle(SidebarListStyle()) } } struct CollectionSidebar_Previews: PreviewProvider { @Environment(\.managedObjectContext) var moc static var previews: some View { let userCollection1 = WFACollection(context: PersistenceManager.persistentContainer.viewContext) let userCollection2 = WFACollection(context: PersistenceManager.persistentContainer.viewContext) let userCollection3 = WFACollection(context: PersistenceManager.persistentContainer.viewContext) userCollection1.title = "Collection 1" userCollection2.title = "Collection 2" userCollection3.title = "Collection 3" let model = WriteFreelyModel() model.collections = CollectionListModel() return CollectionListView() .environmentObject(model) .environment(\.managedObjectContext, PersistenceManager.persistentContainer.viewContext) } }