# HG changeset patch # User Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> # Date 1615724665 -3600 # Node ID e8223540f3f354aed561e0d8162693ea7c962701 # Parent cc260d53fcf8daa39b4fcba814130310ec251dca Add fav symbol on CompanyView diff -r cc260d53fcf8 -r e8223540f3f3 LazyBear/UI/CompanyView.swift --- a/LazyBear/UI/CompanyView.swift Sun Mar 14 13:24:01 2021 +0100 +++ b/LazyBear/UI/CompanyView.swift Sun Mar 14 13:24:25 2021 +0100 @@ -17,8 +17,7 @@ @EnvironmentObject var hudManager: HudManager @EnvironmentObject var companyOption: CompanyOption @Environment(\.managedObjectContext) private var moc - @FetchRequest(entity: Company.entity(), sortDescriptors: []) - var companies: FetchedResults + @FetchRequest(entity: Company.entity(), sortDescriptors: []) var companies: FetchedResults var body: some View { GeometryReader { geo in @@ -52,9 +51,12 @@ ToolbarItem(placement: .navigationBarTrailing) { let symbols = companies.map { $0.symbol } if !symbols.contains(symbol) { - Button(action: { add() }) { + Button(action: { addCompany() }) { Image(systemName: "star") - .imageScale(.large) + } + } else { + Button(action: { removeCompany() }) { + Image(systemName: "star.fill") } } } @@ -62,7 +64,7 @@ } // Add to watchlist - private func add() { + private func addCompany() { let generator = UINotificationFeedbackGenerator() // Haptic let company = Company(context: moc) company.symbol = symbol @@ -71,11 +73,24 @@ try moc.save() hudManager.selectHud(type: .notification) generator.notificationOccurred(.success) - print("Company saved.") + print("Company saved") } catch { print(error.localizedDescription) } } + + private func removeCompany() { + let symbols = companies.map { $0.symbol } + let index = symbols.firstIndex(of: symbol) + let company = companies[index!] + moc.delete(company) + do { + try moc.save() + print("Company deleted") + } catch { + // Error + } + } } struct CompanyView_Previews: PreviewProvider {