Mercurial > public > lazybear
view LazyBear/UI/Watchlist.swift @ 262:cd902f3f7f33
Implement PriceView in CompanyRow
author | Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> |
---|---|
date | Sat, 13 Mar 2021 15:32:24 +0100 |
parents | 6977df9241a6 |
children | 1836c369cbc4 |
line wrap: on
line source
// // Watchlist.swift // LazyBear // // Created by Dennis Concepción Martín on 19/2/21. // import SwiftUI import CoreData struct Watchlist: View { @EnvironmentObject var hudManager: HudManager @Environment(\.managedObjectContext) private var moc @FetchRequest(entity: Company.entity(), sortDescriptors: []) var companies: FetchedResults<Company> var body: some View { NavigationView { List { ForEach(companies, id: \.symbol) { company in let index = companies.firstIndex(of: company) let name = company.name let symbol = company.symbol NavigationLink(destination: CompanyView(name: name, symbol: symbol) .navigationTitle(symbol) ) { CompanyRow(symbol: symbol, name: name, rowNumber: index! % 5, showPrice: true) } } .onDelete(perform: removeCompany) } .navigationTitle("Watchlist 👀") .toolbar { ToolbarItem(placement: .navigationBarTrailing) { EditButton() } } } .navigationViewStyle(StackNavigationViewStyle()) } private func removeCompany(at offsets: IndexSet) { for index in offsets { let company = companies[index] moc.delete(company) } do { try moc.save() } catch { // Error } } } struct Watchlist_Previews: PreviewProvider { static var previews: some View { Watchlist() } }