annotate LazyBear/Views/Profile/Helpers/WatchlistSheet.swift @ 427:e707dbfc3115

Fixing weird animation .onDelete
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Wed, 16 Jun 2021 13:46:40 +0200
parents
children 8c58ce834d95
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
427
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
1 //
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
2 // WatchlistSheet.swift
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
3 // LazyBear
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
4 //
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 16/6/21.
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
6 //
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
7
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
8 import SwiftUI
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
9
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
10 struct WatchlistSheet: View {
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
11 var listName: String
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
12 var companies: [CompanyModel]
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
13
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
14 @Environment(\.presentationMode) private var watchlistSheetPresentation
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
15 @Environment(\.managedObjectContext) private var moc
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
16 @FetchRequest(entity: WatchlistCompany.entity(), sortDescriptors: [NSSortDescriptor(key:"symbol", ascending:true)])
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
17 var watchlistCompanies: FetchedResults<WatchlistCompany>
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
18
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
19 /*
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
20 NSSortDescriptor and .sorted(by: {} in ForEach must coincide. If not .onDelete is not working well.
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
21 */
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
22 var body: some View {
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
23 NavigationView {
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
24 VStack {
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
25 List {
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
26 ForEach(companies.sorted(by: { $0.companyName < $1.companyName }), id: \.self) { company in
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
27 StockSheetRow(company: company)
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
28 }
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
29 .onDelete(perform: deleteCompany)
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
30 }
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
31 }
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
32 .navigationTitle(listName)
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
33 .navigationBarTitleDisplayMode(.inline)
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
34 .toolbar {
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
35 ToolbarItem(placement: .navigationBarLeading) {
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
36 Button(action: {watchlistSheetPresentation.wrappedValue.dismiss()}) {
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
37 Image(systemName: "multiply")
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
38 }
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
39 }
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
40 }
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
41 }
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
42 }
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
43
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
44 /*
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
45 Delete company from watchlist
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
46 */
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
47 private func deleteCompany(at offsets: IndexSet) {
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
48 print(watchlistCompanies)
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
49 for index in offsets {
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
50 print(index)
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
51 let company = watchlistCompanies[index]
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
52 moc.delete(company)
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
53 }
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
54 do {
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
55 try moc.save()
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
56 print("Company deleted")
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
57 } catch {
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
58 print(error.localizedDescription)
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
59 }
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
60 }
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
61 }
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
62
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
63 struct WatchlistSheet_Previews: PreviewProvider {
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
64 static var previews: some View {
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
65 WatchlistSheet(
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
66 listName: "Most active",
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
67 companies: [CompanyModel(symbol: "aapl", companyName: "Apple Inc", latestPrice: 120.3, changePercent: 0.03, intradayPrices: [120.3])]
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
68 )
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
69 }
e707dbfc3115 Fixing weird animation .onDelete
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
70 }