annotate LazyBear/Views/Profile/Helpers/RenameListSheet.swift @ 430:c78d5b5b3bda

Minor updates
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Sat, 19 Jun 2021 16:21:26 +0200
parents 8c58ce834d95
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }