Mercurial > public > lazybear
annotate LazyBear/Views/Profile/Helpers/RenameListSheet.swift @ 457:c6913f0ce46e
Minor UI Updates
author | Dennis Concepción Martín <dennisconcepcionmartin@gmail.com> |
---|---|
date | Mon, 28 Jun 2021 14:03:50 +0200 |
parents | c78d5b5b3bda |
children |
rev | line source |
---|---|
428
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
1 // |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
2 // RenameListSheet.swift |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
3 // LazyBear |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
4 // |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
5 // Created by Dennis Concepción Martín on 18/6/21. |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
6 // |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
7 |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
8 import SwiftUI |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
9 import Introspect |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
10 |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
11 struct RenameListSheet: View { |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
12 var oldWatchlistName: String |
430
c78d5b5b3bda
Minor updates
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
428
diff
changeset
|
13 |
428
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
14 @State private var newWatchlistName = String() |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
15 |
430
c78d5b5b3bda
Minor updates
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
428
diff
changeset
|
16 @Environment(\.presentationMode) private var renameListSheetPresentation |
428
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
17 @Environment(\.managedObjectContext) private var moc |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
18 @FetchRequest(entity: WatchlistCompany.entity(), sortDescriptors: []) |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
19 var watchlistCompanies: FetchedResults<WatchlistCompany> |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
20 |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
21 var body: some View { |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
22 NavigationView { |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
23 Form { |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
24 let header = "Need ideas? Try my portfolio, or banks" |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
25 Section(header: Text(header)) { |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
26 TextField("Enter a name", text: $newWatchlistName) |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
27 .introspectTextField { textField in |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
28 textField.becomeFirstResponder() |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
29 } |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
30 } |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
31 } |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
32 .navigationTitle("Rename your watchlist") |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
33 .toolbar { |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
34 ToolbarItem(placement: .navigationBarLeading) { |
430
c78d5b5b3bda
Minor updates
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
428
diff
changeset
|
35 Button(action: { renameListSheetPresentation.wrappedValue.dismiss() }) { |
428
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
36 Image(systemName: "multiply") |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
37 } |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
38 } |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
39 |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
40 ToolbarItem(placement: .navigationBarTrailing) { |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
41 if !newWatchlistName.isEmpty { |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
42 Button("Done", action: { renameWatchlist() }) |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
43 } |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
44 } |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
45 } |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
46 } |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
47 } |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
48 |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
49 /* |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
50 Rename watchlistName variable from each Core Data (WatchlistCompany) object |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
51 */ |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
52 private func renameWatchlist() { |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
53 for watchlistCompany in watchlistCompanies { |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
54 watchlistCompany.watchlistName = newWatchlistName |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
55 } |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
56 |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
57 do { |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
58 try moc.save() |
430
c78d5b5b3bda
Minor updates
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
428
diff
changeset
|
59 renameListSheetPresentation.wrappedValue.dismiss() |
c78d5b5b3bda
Minor updates
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
428
diff
changeset
|
60 |
428
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
61 } catch { |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
62 print(error.localizedDescription) |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
63 } |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
64 } |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
65 } |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
66 |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
67 struct RenameListSheet_Previews: PreviewProvider { |
430
c78d5b5b3bda
Minor updates
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
428
diff
changeset
|
68 @Environment(\.presentationMode) static var presentationMode |
c78d5b5b3bda
Minor updates
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
428
diff
changeset
|
69 |
428
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
70 static var previews: some View { |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
71 RenameListSheet(oldWatchlistName: "Old name") |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
72 } |
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
73 } |