Mercurial > public > lazybear
view LazyBear/ContentView.swift @ 471:f6bb6fde1ff7 default tip
Move to mercurial
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Tue, 03 Jun 2025 15:05:50 +0100 |
parents | 6953d83060a4 |
children |
line wrap: on
line source
// // ContentView.swift // lazybear // // Created by Dennis Concepción Martín on 17/07/2021. // import SwiftUI import CoreData struct ContentView: View { @State private var tab: Tab = .watchlist @Environment(\.managedObjectContext) private var viewContext @FetchRequest(sortDescriptors: []) private var companies: FetchedResults<Company> var body: some View { TabView(selection: $tab) { Watchlist() .tabItem { Image(systemName: "list.star") Text("Watchlist") } .tag(Tab.watchlist) Search() .tabItem { Image(systemName: "magnifyingglass") Text("Search") } .tag(Tab.search) } .onAppear(perform: createDefaultWatchlist) } private enum Tab { case watchlist, search, settings } // MARK: - Create default watchlist private func createDefaultWatchlist() { if companies.isEmpty { let defaultCompanies = [ "AAPL": "Apple Inc", "AMZN": "Amazon.com Inc.", "BRK.A": "Berkshire Hathaway Inc.", "GS": "Goldman Sachs Group, Inc.", "TSLA": "Tesla Inc", "MSFT": "Microsoft Corporation", "WMT": "Walmart Inc", "DIS": "Walt Disney Co (The)", "NKE": "Nike, Inc." ] for defaultCompany in defaultCompanies { withAnimation { let company = Company(context: viewContext) company.symbol = defaultCompany.key company.companyName = defaultCompany.value do { try viewContext.save() } catch { let nsError = error as NSError fatalError("Unresolved error \(nsError), \(nsError.userInfo)") } } } } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() .environment(\.managedObjectContext, PersistenceController.preview.container.viewContext) } }