Mercurial > public > lazybear
annotate LazyBear/ContentView.swift @ 272:9e23e9b0ab36
Implementing Custom Line Chart
author | Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> |
---|---|
date | Mon, 15 Mar 2021 20:06:24 +0100 |
parents | 471906e56feb |
children | 22eba376075e |
rev | line source |
---|---|
163
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
1 // |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
2 // ContentView.swift |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
3 // LazyBear |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
4 // |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
5 // Created by Dennis Concepción Martín on 17/2/21. |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
6 // |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
7 |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
8 import SwiftUI |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
9 |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
10 struct ContentView: View { |
248
1c4da42d6b88
Change vars to EnvironmentObject
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
246
diff
changeset
|
11 @EnvironmentObject var hudManager: HudManager |
272
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
12 @EnvironmentObject var deviceSize: DeviceSize |
178
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
13 |
244
724916624385
Implement Insider View
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
193
diff
changeset
|
14 // Fetch user appearence settings |
181
9533f6a60531
User can change theme color
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
178
diff
changeset
|
15 @FetchRequest(entity: UserSettings.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \UserSettings.changedAt, ascending: false)]) |
9533f6a60531
User can change theme color
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
178
diff
changeset
|
16 var userSettings: FetchedResults<UserSettings> |
9533f6a60531
User can change theme color
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
178
diff
changeset
|
17 |
163
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
18 var body: some View { |
272
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
19 GeometryReader { geo in |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
20 ZStack(alignment: .top) { |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
21 TabView { |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
22 // First view |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
23 Watchlist() |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
24 .tabItem { |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
25 Label("Watchlist", systemImage: "list.dash") |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
26 } |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
27 |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
28 // First view |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
29 Search() |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
30 .tabItem { |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
31 Label("Search", systemImage: "magnifyingglass") |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
32 } |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
33 |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
34 // First view |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
35 Settings() |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
36 .tabItem { |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
37 Label("Settings", systemImage: "gear") |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
38 } |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
39 } |
178
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
40 |
272
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
41 // Show HUDs |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
42 // Notification |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
43 Notification(text: "Company saved", image: "checkmark.circle") |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
44 .offset(y: hudManager.showNotification ? 0 : -100) |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
45 .animation(.easeInOut) |
178
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
46 |
272
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
47 // Action sheet |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
48 ZStack(alignment: .bottom) { |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
49 Color(.black) |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
50 .edgesIgnoringSafeArea(.all) |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
51 .opacity(hudManager.showAction ? 0.2: 0) |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
52 .animation(.easeInOut) |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
53 .onTapGesture { hudManager.showAction = false } |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
54 |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
55 ActionView() |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
56 .offset(y: hudManager.showAction ? 0 : 250) |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
57 .animation(.easeInOut) |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
58 .padding() |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
59 } |
178
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
60 } |
272
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
61 .accentColor(Color("\(userSettings.first?.theme?.lowercased() ?? "default")Accent")) |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
62 // If this value is not optional it will cause a crash |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
63 .onAppear { |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
64 // Assign device screen size to the class |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
65 self.deviceSize.width = geo.size.width |
9e23e9b0ab36
Implementing Custom Line Chart
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
258
diff
changeset
|
66 self.deviceSize.height = geo.size.height |
246
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
67 } |
163
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
68 } |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
69 } |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
70 } |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
71 |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
72 |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
73 struct ContentView_Previews: PreviewProvider { |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
74 static var previews: some View { |
165
125d268db489
Update UI
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
164
diff
changeset
|
75 ContentView() |
258
471906e56feb
Changing NewsView on iPad
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
250
diff
changeset
|
76 .environmentObject(HudManager()) |
163
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
77 } |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
78 } |