Mercurial > public > lazybear
view 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 |
line wrap: on
line source
// // RenameListSheet.swift // LazyBear // // Created by Dennis Concepción Martín on 18/6/21. // import SwiftUI import Introspect struct RenameListSheet: View { var oldWatchlistName: String @State private var newWatchlistName = String() @Environment(\.presentationMode) private var renameListSheetPresentation @Environment(\.managedObjectContext) private var moc @FetchRequest(entity: WatchlistCompany.entity(), sortDescriptors: []) var watchlistCompanies: FetchedResults<WatchlistCompany> var body: some View { NavigationView { Form { let header = "Need ideas? Try my portfolio, or banks" Section(header: Text(header)) { TextField("Enter a name", text: $newWatchlistName) .introspectTextField { textField in textField.becomeFirstResponder() } } } .navigationTitle("Rename your watchlist") .toolbar { ToolbarItem(placement: .navigationBarLeading) { Button(action: { renameListSheetPresentation.wrappedValue.dismiss() }) { Image(systemName: "multiply") } } ToolbarItem(placement: .navigationBarTrailing) { if !newWatchlistName.isEmpty { Button("Done", action: { renameWatchlist() }) } } } } } /* Rename watchlistName variable from each Core Data (WatchlistCompany) object */ private func renameWatchlist() { for watchlistCompany in watchlistCompanies { watchlistCompany.watchlistName = newWatchlistName } do { try moc.save() renameListSheetPresentation.wrappedValue.dismiss() } catch { print(error.localizedDescription) } } } struct RenameListSheet_Previews: PreviewProvider { @Environment(\.presentationMode) static var presentationMode static var previews: some View { RenameListSheet(oldWatchlistName: "Old name") } }