changeset 81:12a0776e6d9a

Implement new core data
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Mon, 25 Jan 2021 12:07:09 +0100
parents d914ef7734a9
children 0730f031e478
files FavCompany+CoreDataClass.swift FavCompany+CoreDataProperties.swift LazyBear.xcodeproj/project.pbxproj LazyBear.xcodeproj/project.xcworkspace/xcuserdata/dennis.xcuserdatad/UserInterfaceState.xcuserstate WatchlistCompany+CoreDataClass.swift WatchlistCompany+CoreDataProperties.swift lazybear/ContentView.swift lazybear/Functions/Model.swift lazybear/LazyBear.xcdatamodeld/LazyBear.xcdatamodel/contents lazybear/Supply views/CompanyList.swift lazybear/Supply views/CompanyRow.swift lazybear/Supply views/CompanyView.swift lazybear/Supply views/FavCompanyList.swift lazybear/Supply views/FavCompanyRow.swift lazybear/Supply views/Header.swift lazybear/Supply views/ShowingCompany.swift lazybear/Tests/TestViewBuilder.swift
diffstat 17 files changed, 198 insertions(+), 196 deletions(-) [+]
line wrap: on
line diff
--- a/FavCompany+CoreDataClass.swift	Mon Jan 25 10:22:05 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-//
-//  FavCompany+CoreDataClass.swift
-//  LazyBear
-//
-//  Created by Dennis Concepción Martín on 13/1/21.
-//
-//
-
-import Foundation
-import CoreData
-
-@objc(FavCompany)
-public class FavCompany: NSManagedObject {
-
-}
--- a/FavCompany+CoreDataProperties.swift	Mon Jan 25 10:22:05 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-//
-//  FavCompany+CoreDataProperties.swift
-//  LazyBear
-//
-//  Created by Dennis Concepción Martín on 13/1/21.
-//
-//
-
-import Foundation
-import CoreData
-
-
-extension FavCompany {
-
-    @nonobjc public class func fetchRequest() -> NSFetchRequest<FavCompany> {
-        return NSFetchRequest<FavCompany>(entityName: "FavCompany")
-    }
-
-    @NSManaged public var cik: Int32
-    @NSManaged public var symbol: String
-    @NSManaged public var name: String
-
-}
-
-extension FavCompany : Identifiable {
-
-}
--- a/LazyBear.xcodeproj/project.pbxproj	Mon Jan 25 10:22:05 2021 +0100
+++ b/LazyBear.xcodeproj/project.pbxproj	Mon Jan 25 12:07:09 2021 +0100
@@ -17,10 +17,7 @@
 		954D996D25A2461B001F7F60 /* SwiftUICharts in Frameworks */ = {isa = PBXBuildFile; productRef = 954D996C25A2461B001F7F60 /* SwiftUICharts */; };
 		954D997125A253A9001F7F60 /* Config.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954D997025A253A9001F7F60 /* Config.swift */; };
 		95612C512598D48200F7698F /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95612C4F2598D48200F7698F /* SearchBar.swift */; };
-		956FAF7B25AF421E0002B2C1 /* FavCompany+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 956FAF7925AF421E0002B2C1 /* FavCompany+CoreDataClass.swift */; };
-		956FAF7C25AF421E0002B2C1 /* FavCompany+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 956FAF7A25AF421E0002B2C1 /* FavCompany+CoreDataProperties.swift */; };
 		95700BC625BD9D12009CEEFE /* IexApi.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95700BC525BD9D12009CEEFE /* IexApi.swift */; };
-		958E472B25B1CA8B0048E770 /* FavCompanyList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 958E472A25B1CA8B0048E770 /* FavCompanyList.swift */; };
 		95AB4A7A259DCBAE0064C9C1 /* ReadJson.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95AB4A79259DCBAE0064C9C1 /* ReadJson.swift */; };
 		95AB4A7D259DCC0C0064C9C1 /* CompanyModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95AB4A7C259DCC0C0064C9C1 /* CompanyModel.swift */; };
 		95AB4A90259DD66D0064C9C1 /* CompanyRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95AB4A8F259DD66D0064C9C1 /* CompanyRow.swift */; };
@@ -33,12 +30,16 @@
 		95D1BF4925ADCF7700E5D063 /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95D1BF4825ADCF7700E5D063 /* Persistence.swift */; };
 		95E0287B25B88F3C00020CF2 /* FormDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95E0287A25B88F3C00020CF2 /* FormDescription.swift */; };
 		95E4118F25BEC35D00A9C23F /* SDWebImageSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 95E4118E25BEC35D00A9C23F /* SDWebImageSwiftUI */; };
-		95F6C2DD25BAD394003CF389 /* FavCompanyRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95F6C2DC25BAD394003CF389 /* FavCompanyRow.swift */; };
+		95E4119225BEC56F00A9C23F /* Header.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95E4119125BEC56F00A9C23F /* Header.swift */; };
+		95E4119625BEC9DD00A9C23F /* TestViewBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95E4119525BEC9DD00A9C23F /* TestViewBuilder.swift */; };
+		95E4119A25BECCB200A9C23F /* Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95E4119925BECCB200A9C23F /* Model.swift */; };
+		95E411A225BEDDC400A9C23F /* WatchlistCompany+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95E411A025BEDDC400A9C23F /* WatchlistCompany+CoreDataClass.swift */; };
+		95E411A325BEDDC400A9C23F /* WatchlistCompany+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95E411A125BEDDC400A9C23F /* WatchlistCompany+CoreDataProperties.swift */; };
 		95F6C2E425BAD529003CF389 /* RandomColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95F6C2E325BAD529003CF389 /* RandomColor.swift */; };
 		95F6C2F025BAE2ED003CF389 /* Company.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95F6C2EF25BAE2ED003CF389 /* Company.swift */; };
 		95F6C2F325BAE3D1003CF389 /* Stock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95F6C2F225BAE3D1003CF389 /* Stock.swift */; };
 		95F6C2FE25BAEBBD003CF389 /* HeaderWatchList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95F6C2FD25BAEBBD003CF389 /* HeaderWatchList.swift */; };
-		95F6C30125BAEC8B003CF389 /* ShowingCompany.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95F6C30025BAEC8B003CF389 /* ShowingCompany.swift */; };
+		95F6C30125BAEC8B003CF389 /* CompanyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95F6C30025BAEC8B003CF389 /* CompanyView.swift */; };
 		95F6C30525BAF599003CF389 /* CompanyHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95F6C30425BAF599003CF389 /* CompanyHeader.swift */; };
 		95F6C30925BAF7C2003CF389 /* DateSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95F6C30825BAF7C2003CF389 /* DateSelection.swift */; };
 		95F6C31125BAFFB8003CF389 /* AddWatchlist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95F6C31025BAFFB8003CF389 /* AddWatchlist.swift */; };
@@ -56,10 +57,7 @@
 		954D992425A2123B001F7F60 /* HistoricalPricesModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = HistoricalPricesModel.swift; path = lazybear/Models/HistoricalPricesModel.swift; sourceTree = SOURCE_ROOT; };
 		954D997025A253A9001F7F60 /* Config.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Config.swift; path = lazybear/Config.swift; sourceTree = SOURCE_ROOT; };
 		95612C4F2598D48200F7698F /* SearchBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchBar.swift; sourceTree = "<group>"; };
-		956FAF7925AF421E0002B2C1 /* FavCompany+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FavCompany+CoreDataClass.swift"; sourceTree = "<group>"; };
-		956FAF7A25AF421E0002B2C1 /* FavCompany+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FavCompany+CoreDataProperties.swift"; sourceTree = "<group>"; };
 		95700BC525BD9D12009CEEFE /* IexApi.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = IexApi.swift; path = lazybear/IexApi.swift; sourceTree = SOURCE_ROOT; };
-		958E472A25B1CA8B0048E770 /* FavCompanyList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = FavCompanyList.swift; path = "lazybear/Supply views/FavCompanyList.swift"; sourceTree = SOURCE_ROOT; };
 		95AB4A79259DCBAE0064C9C1 /* ReadJson.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ReadJson.swift; path = lazybear/Functions/ReadJson.swift; sourceTree = SOURCE_ROOT; };
 		95AB4A7C259DCC0C0064C9C1 /* CompanyModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = CompanyModel.swift; path = lazybear/Models/CompanyModel.swift; sourceTree = SOURCE_ROOT; };
 		95AB4A8F259DD66D0064C9C1 /* CompanyRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompanyRow.swift; sourceTree = "<group>"; };
@@ -73,12 +71,16 @@
 		95C28AB825BC46250033D16A /* ScalateChart.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ScalateChart.swift; path = lazybear/Functions/ScalateChart.swift; sourceTree = SOURCE_ROOT; };
 		95D1BF4825ADCF7700E5D063 /* Persistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Persistence.swift; path = "LazyBear/Core Data/Persistence.swift"; sourceTree = SOURCE_ROOT; };
 		95E0287A25B88F3C00020CF2 /* FormDescription.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = FormDescription.swift; path = lazybear/Models/FormDescription.swift; sourceTree = SOURCE_ROOT; };
-		95F6C2DC25BAD394003CF389 /* FavCompanyRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavCompanyRow.swift; sourceTree = "<group>"; };
+		95E4119125BEC56F00A9C23F /* Header.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Header.swift; sourceTree = "<group>"; };
+		95E4119525BEC9DD00A9C23F /* TestViewBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = TestViewBuilder.swift; path = lazybear/Tests/TestViewBuilder.swift; sourceTree = SOURCE_ROOT; };
+		95E4119925BECCB200A9C23F /* Model.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Model.swift; path = lazybear/Functions/Model.swift; sourceTree = SOURCE_ROOT; };
+		95E411A025BEDDC400A9C23F /* WatchlistCompany+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WatchlistCompany+CoreDataClass.swift"; sourceTree = "<group>"; };
+		95E411A125BEDDC400A9C23F /* WatchlistCompany+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WatchlistCompany+CoreDataProperties.swift"; sourceTree = "<group>"; };
 		95F6C2E325BAD529003CF389 /* RandomColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = RandomColor.swift; path = lazybear/Functions/RandomColor.swift; sourceTree = SOURCE_ROOT; };
 		95F6C2EF25BAE2ED003CF389 /* Company.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Company.swift; sourceTree = "<group>"; };
 		95F6C2F225BAE3D1003CF389 /* Stock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stock.swift; sourceTree = "<group>"; };
 		95F6C2FD25BAEBBD003CF389 /* HeaderWatchList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderWatchList.swift; sourceTree = "<group>"; };
-		95F6C30025BAEC8B003CF389 /* ShowingCompany.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ShowingCompany.swift; path = "lazybear/Supply views/ShowingCompany.swift"; sourceTree = SOURCE_ROOT; };
+		95F6C30025BAEC8B003CF389 /* CompanyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = CompanyView.swift; path = "lazybear/Supply views/CompanyView.swift"; sourceTree = SOURCE_ROOT; };
 		95F6C30425BAF599003CF389 /* CompanyHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompanyHeader.swift; sourceTree = "<group>"; };
 		95F6C30825BAF7C2003CF389 /* DateSelection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateSelection.swift; sourceTree = "<group>"; };
 		95F6C31025BAFFB8003CF389 /* AddWatchlist.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddWatchlist.swift; sourceTree = "<group>"; };
@@ -111,6 +113,7 @@
 			isa = PBXGroup;
 			children = (
 				9537924925BDFCD70001F82B /* LoadImageTest.swift */,
+				95E4119525BEC9DD00A9C23F /* TestViewBuilder.swift */,
 			);
 			path = Tests;
 			sourceTree = "<group>";
@@ -118,15 +121,14 @@
 		95612C4D2598D48200F7698F /* Supply views */ = {
 			isa = PBXGroup;
 			children = (
-				95F6C2EF25BAE2ED003CF389 /* Company.swift */,
+				95E4119125BEC56F00A9C23F /* Header.swift */,
+				95AB4A8F259DD66D0064C9C1 /* CompanyRow.swift */,
+				950B79F525B1CB7A00E5DB5B /* CompanyList.swift */,
 				95F6C2F225BAE3D1003CF389 /* Stock.swift */,
-				95F6C30025BAEC8B003CF389 /* ShowingCompany.swift */,
+				95F6C2EF25BAE2ED003CF389 /* Company.swift */,
+				95F6C30025BAEC8B003CF389 /* CompanyView.swift */,
 				95612C4F2598D48200F7698F /* SearchBar.swift */,
-				958E472A25B1CA8B0048E770 /* FavCompanyList.swift */,
-				95F6C2DC25BAD394003CF389 /* FavCompanyRow.swift */,
 				95F6C2FD25BAEBBD003CF389 /* HeaderWatchList.swift */,
-				950B79F525B1CB7A00E5DB5B /* CompanyList.swift */,
-				95AB4A8F259DD66D0064C9C1 /* CompanyRow.swift */,
 				95F6C30425BAF599003CF389 /* CompanyHeader.swift */,
 				952498B225BB381300B00E22 /* CurrentPrice.swift */,
 				95F6C30825BAF7C2003CF389 /* DateSelection.swift */,
@@ -143,6 +145,7 @@
 				95F6C2E325BAD529003CF389 /* RandomColor.swift */,
 				95C28AB525BC45CF0033D16A /* ChartStyle.swift */,
 				95C28AB825BC46250033D16A /* ScalateChart.swift */,
+				95E4119925BECCB200A9C23F /* Model.swift */,
 			);
 			path = Functions;
 			sourceTree = "<group>";
@@ -169,8 +172,8 @@
 		95B04EA625212369000AD27F = {
 			isa = PBXGroup;
 			children = (
-				956FAF7925AF421E0002B2C1 /* FavCompany+CoreDataClass.swift */,
-				956FAF7A25AF421E0002B2C1 /* FavCompany+CoreDataProperties.swift */,
+				95E411A025BEDDC400A9C23F /* WatchlistCompany+CoreDataClass.swift */,
+				95E411A125BEDDC400A9C23F /* WatchlistCompany+CoreDataProperties.swift */,
 				95B04EB125212369000AD27F /* LazyBear */,
 				95B04EB025212369000AD27F /* Products */,
 				9500257E256D17D9008FFD28 /* Frameworks */,
@@ -298,22 +301,22 @@
 				95F6C30525BAF599003CF389 /* CompanyHeader.swift in Sources */,
 				952498B325BB381300B00E22 /* CurrentPrice.swift in Sources */,
 				95F6C2FE25BAEBBD003CF389 /* HeaderWatchList.swift in Sources */,
+				95E4119A25BECCB200A9C23F /* Model.swift in Sources */,
+				95E411A225BEDDC400A9C23F /* WatchlistCompany+CoreDataClass.swift in Sources */,
 				95612C512598D48200F7698F /* SearchBar.swift in Sources */,
+				95E411A325BEDDC400A9C23F /* WatchlistCompany+CoreDataProperties.swift in Sources */,
 				950B79F625B1CB7A00E5DB5B /* CompanyList.swift in Sources */,
-				956FAF7C25AF421E0002B2C1 /* FavCompany+CoreDataProperties.swift in Sources */,
 				95B04EB525212369000AD27F /* ContentView.swift in Sources */,
 				95AB4A90259DD66D0064C9C1 /* CompanyRow.swift in Sources */,
-				95F6C30125BAEC8B003CF389 /* ShowingCompany.swift in Sources */,
+				95F6C30125BAEC8B003CF389 /* CompanyView.swift in Sources */,
 				95F6C30925BAF7C2003CF389 /* DateSelection.swift in Sources */,
 				95F6C2F025BAE2ED003CF389 /* Company.swift in Sources */,
 				95D1BF4925ADCF7700E5D063 /* Persistence.swift in Sources */,
-				958E472B25B1CA8B0048E770 /* FavCompanyList.swift in Sources */,
-				956FAF7B25AF421E0002B2C1 /* FavCompany+CoreDataClass.swift in Sources */,
+				95E4119225BEC56F00A9C23F /* Header.swift in Sources */,
 				95F6C31125BAFFB8003CF389 /* AddWatchlist.swift in Sources */,
 				95B04EB325212369000AD27F /* LazyBearApp.swift in Sources */,
 				95F6C2F325BAE3D1003CF389 /* Stock.swift in Sources */,
 				95AB4A7D259DCC0C0064C9C1 /* CompanyModel.swift in Sources */,
-				95F6C2DD25BAD394003CF389 /* FavCompanyRow.swift in Sources */,
 				95700BC625BD9D12009CEEFE /* IexApi.swift in Sources */,
 				9537923625BDF85D0001F82B /* GoogleApi.swift in Sources */,
 				95F6C2E425BAD529003CF389 /* RandomColor.swift in Sources */,
@@ -323,6 +326,7 @@
 				95C28AB925BC46250033D16A /* ScalateChart.swift in Sources */,
 				954D992525A2123B001F7F60 /* HistoricalPricesModel.swift in Sources */,
 				95F7CAF625ADC7B7009E0E7C /* LazyBear.xcdatamodeld in Sources */,
+				95E4119625BEC9DD00A9C23F /* TestViewBuilder.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
Binary file LazyBear.xcodeproj/project.xcworkspace/xcuserdata/dennis.xcuserdatad/UserInterfaceState.xcuserstate has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WatchlistCompany+CoreDataClass.swift	Mon Jan 25 12:07:09 2021 +0100
@@ -0,0 +1,15 @@
+//
+//  WatchlistCompany+CoreDataClass.swift
+//  LazyBear
+//
+//  Created by Dennis Concepción Martín on 25/1/21.
+//
+//
+
+import Foundation
+import CoreData
+
+@objc(WatchlistCompany)
+public class WatchlistCompany: NSManagedObject {
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WatchlistCompany+CoreDataProperties.swift	Mon Jan 25 12:07:09 2021 +0100
@@ -0,0 +1,38 @@
+//
+//  WatchlistCompany+CoreDataProperties.swift
+//  LazyBear
+//
+//  Created by Dennis Concepción Martín on 25/1/21.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension WatchlistCompany {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<WatchlistCompany> {
+        return NSFetchRequest<WatchlistCompany>(entityName: "WatchlistCompany")
+    }
+
+    @NSManaged public var symbol: String?
+    @NSManaged public var exchange: String?
+    @NSManaged public var exchangeSuffix: String?
+    @NSManaged public var exchangeName: String?
+    @NSManaged public var name: String?
+    @NSManaged public var date: String?
+    @NSManaged public var type: String?
+    @NSManaged public var iexId: String?
+    @NSManaged public var region: String?
+    @NSManaged public var currency: String?
+    @NSManaged public var isEnabled: Bool
+    @NSManaged public var figi: String?
+    @NSManaged public var cik: String?
+    @NSManaged public var lei: String?
+
+}
+
+extension WatchlistCompany : Identifiable {
+
+}
--- a/lazybear/ContentView.swift	Mon Jan 25 10:22:05 2021 +0100
+++ b/lazybear/ContentView.swift	Mon Jan 25 12:07:09 2021 +0100
@@ -15,29 +15,21 @@
 
     var body: some View {
         VStack(alignment: .leading) {
-            Text("Home")
-                .font(.largeTitle)
-                .fontWeight(.bold)
-                .padding()
-            
+            Header(name: "Home")
             SearchBar(searchedText: $searchedCompany, showingSearch: $showingSearch)
-            
-            if !showingSearch {
-                HeaderWatchlist()
-                //FavCompanyList()
-                    //.environment(\.managedObjectContext, persistenceController.container.viewContext)
-                
-            } else {
+
+            if showingSearch {
                 if searchedCompany.count > 2 {
                     CompanyList(searchedCompany: $searchedCompany)
                 }
-                
-                Spacer()
+            } else {
+                // Watchlist
             }
         }
     }
 }
 
+
 struct ContentView_Previews: PreviewProvider {
     static var previews: some View {
         ContentView()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lazybear/Functions/Model.swift	Mon Jan 25 12:07:09 2021 +0100
@@ -0,0 +1,14 @@
+//
+//  ModelSelected.swift
+//  LazyBear
+//
+//  Created by Dennis Concepción Martín on 25/1/21.
+//
+
+import SwiftUI
+
+class Model {
+    func selector() {
+        
+    }
+}
--- a/lazybear/LazyBear.xcdatamodeld/LazyBear.xcdatamodel/contents	Mon Jan 25 10:22:05 2021 +0100
+++ b/lazybear/LazyBear.xcdatamodeld/LazyBear.xcdatamodel/contents	Mon Jan 25 12:07:09 2021 +0100
@@ -1,11 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="17709" systemVersion="20C69" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">
-    <entity name="FavCompany" representedClassName="FavCompany" syncable="YES">
-        <attribute name="cik" optional="YES" attributeType="Integer 32" defaultValueString="0" usesScalarValueType="YES"/>
+    <entity name="WatchlistCompany" representedClassName="WatchlistCompany" syncable="YES">
+        <attribute name="cik" optional="YES" attributeType="String"/>
+        <attribute name="currency" optional="YES" attributeType="String"/>
+        <attribute name="date" optional="YES" attributeType="String"/>
+        <attribute name="exchange" optional="YES" attributeType="String"/>
+        <attribute name="exchangeName" optional="YES" attributeType="String"/>
+        <attribute name="exchangeSuffix" optional="YES" attributeType="String"/>
+        <attribute name="figi" optional="YES" attributeType="String"/>
+        <attribute name="iexId" optional="YES" attributeType="String"/>
+        <attribute name="isEnabled" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
+        <attribute name="lei" optional="YES" attributeType="String"/>
         <attribute name="name" optional="YES" attributeType="String"/>
+        <attribute name="region" optional="YES" attributeType="String"/>
         <attribute name="symbol" optional="YES" attributeType="String"/>
+        <attribute name="type" optional="YES" attributeType="String"/>
     </entity>
     <elements>
-        <element name="FavCompany" positionX="-63" positionY="-18" width="128" height="74"/>
+        <element name="WatchlistCompany" positionX="-63" positionY="-18" width="128" height="14"/>
     </elements>
 </model>
\ No newline at end of file
--- a/lazybear/Supply views/CompanyList.swift	Mon Jan 25 10:22:05 2021 +0100
+++ b/lazybear/Supply views/CompanyList.swift	Mon Jan 25 12:07:09 2021 +0100
@@ -14,7 +14,7 @@
         List {
             ForEach(companiesData.filter({ searchedCompany.isEmpty ? true : $0.name.localizedStandardContains(searchedCompany) })
                     , id: \.symbol) { company in
-                CompanyRow(company: company)
+                //CompanyRow(company: company)
             }
         }
         .edgesIgnoringSafeArea(.bottom)
--- a/lazybear/Supply views/CompanyRow.swift	Mon Jan 25 10:22:05 2021 +0100
+++ b/lazybear/Supply views/CompanyRow.swift	Mon Jan 25 12:07:09 2021 +0100
@@ -8,11 +8,12 @@
 import SwiftUI
 
 struct CompanyRow: View {
-    @ObservedObject var showingCompany = ShowingCompany()
+    @ObservedObject var companyView = CompanyView()
     var company: CompanyModel
+    var favCompany: FavCompany
     
     var body: some View {
-        Button(action: { showingCompany.isShowing.toggle() }) {
+        Button(action: { companyView.isShowing.toggle() }) {
             VStack(alignment: .leading) {
                 Text(company.symbol.uppercased())
                     .fontWeight(.semibold)
@@ -22,7 +23,7 @@
                 
             }
         }
-        .fullScreenCover(isPresented: $showingCompany.isShowing) {
+        .fullScreenCover(isPresented: $companyView.isShowing) {
             Company(name: company.name, symbol: company.symbol)
         }
     }
@@ -30,6 +31,6 @@
 
 struct CompanyRown_Previews: PreviewProvider {
     static var previews: some View {
-        CompanyRow(company: companiesData[0])
+        CompanyRow(company: companiesData[0], favCompany: FavCompany.init())
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lazybear/Supply views/CompanyView.swift	Mon Jan 25 12:07:09 2021 +0100
@@ -0,0 +1,16 @@
+//
+//  ShowingCompany.swift
+//  LazyBear
+//
+//  Created by Dennis Concepción Martín on 22/1/21.
+//
+
+import SwiftUI
+
+class CompanyView: ObservableObject {
+    @Published var isShowing: Bool = false {
+        didSet {
+            print("Company is showing -> " + String(isShowing))
+        }
+    }
+}
--- a/lazybear/Supply views/FavCompanyList.swift	Mon Jan 25 10:22:05 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-//
-//  FavCompanies.swift
-//  LazyBear
-//
-//  Created by Dennis Concepción Martín on 15/1/21.
-//
-
-import SwiftUI
-/*
-struct FavCompanyList: View {
-    @Environment(\.managedObjectContext) private var viewContext  // Core data
-    @FetchRequest(entity: FavCompany.entity(), sortDescriptors: [])  // Core data
-    var favCompanies: FetchedResults<FavCompany>  // Fetch core data
-    
-    var body: some View {
-        List {
-            ForEach(favCompanies) { company in
-                let index = favCompanies.firstIndex(of: company)
-                FavCompanyRow(favCompany: company, index: index!)
-            }
-            // Delete from persistent storage
-            .onDelete { indexSet in delete(indexSet: indexSet) }
-        }
-    }
-    
-    func delete(indexSet: IndexSet) {
-        for index in indexSet {
-            viewContext.delete(favCompanies[index])
-        }
-        do {
-            try viewContext.save()
-            print("Company deleted")
-        } catch {
-            print(error.localizedDescription)
-        }
-    }
-}
-
-struct FavCompanies_Previews: PreviewProvider {
-    static var previews: some View {
-        FavCompanyList()
-    }
-}
-*/
--- a/lazybear/Supply views/FavCompanyRow.swift	Mon Jan 25 10:22:05 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-//
-//  FavCompanyRow.swift
-//  LazyBear
-//
-//  Created by Dennis Concepción Martín on 22/1/21.
-//
-
-import SwiftUI
-/*
-struct FavCompanyRow: View {
-    var favCompany: FavCompany
-    var index: Int
-    @ObservedObject var showingCompany = ShowingCompany()
-    let persistenceController = PersistenceController.shared
-    
-    var body: some View {
-        Button(action: { showingCompany.isShowing.toggle() }) {
-            HStack {
-                Image(systemName: "building.2")
-                    .foregroundColor(.white)
-                    .padding(5)
-                    .background(
-                        randomColor(index: index)
-                            .cornerRadius(5)
-                    )
-                
-                VStack(alignment: .leading) {
-                    Text(favCompany.symbol.uppercased())
-                        .fontWeight(.semibold)
-                    
-                    Text(favCompany.name.capitalized)
-                        .font(.caption)
-                }
-            }
-        }
-        .fullScreenCover(isPresented: $showingCompany.isShowing) {
-            Company(name: favCompany.name, symbol: favCompany.symbol)
-                .environment(\.managedObjectContext, persistenceController.container.viewContext)
-            
-        }
-    }
-}
-
-struct FavCompanyRow_Previews: PreviewProvider {
-    static var previews: some View {
-        FavCompanyRow(favCompany: FavCompany.init(), index: 0)
-    }
-}
-*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lazybear/Supply views/Header.swift	Mon Jan 25 12:07:09 2021 +0100
@@ -0,0 +1,25 @@
+//
+//  Header.swift
+//  LazyBear
+//
+//  Created by Dennis Concepción Martín on 25/1/21.
+//
+
+import SwiftUI
+
+struct Header: View {
+    @State var name: String
+    
+    var body: some View {
+        Text(name)
+            .font(.largeTitle)
+            .fontWeight(.bold)
+            .padding()
+    }
+}
+
+struct Header_Previews: PreviewProvider {
+    static var previews: some View {
+        Header(name: "Home")
+    }
+}
--- a/lazybear/Supply views/ShowingCompany.swift	Mon Jan 25 10:22:05 2021 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-//
-//  ShowingCompany.swift
-//  LazyBear
-//
-//  Created by Dennis Concepción Martín on 22/1/21.
-//
-
-import SwiftUI
-
-class ShowingCompany: ObservableObject {
-    @Published var isShowing: Bool = false {
-        didSet {
-            print("Company is showing -> " + String(isShowing))
-        }
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lazybear/Tests/TestViewBuilder.swift	Mon Jan 25 12:07:09 2021 +0100
@@ -0,0 +1,37 @@
+//
+//  TestViewBuilder.swift
+//  LazyBear
+//
+//  Created by Dennis Concepción Martín on 25/1/21.
+//
+
+import SwiftUI
+
+struct TestViewBuilder: View {
+    @State var condition = true
+    var body: some View {
+        VStack {
+            Text("Line 1")
+            Text("Line 2")
+        }
+        .if(condition) { content in
+            ScrollView(.vertical) { content }
+        }
+    }
+}
+extension View {
+   @ViewBuilder
+   func `if`<Content: View>(_ conditional: Bool, content: (Self) -> Content) -> some View {
+        if conditional {
+            content(self)
+        } else {
+            self
+        }
+    }
+}
+
+struct TestViewBuilder_Previews: PreviewProvider {
+    static var previews: some View {
+        TestViewBuilder()
+    }
+}