Mercurial > public > lazybear
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() + } +}