Mercurial > public > lazybear
annotate LazyBear/ContentView.swift @ 248:1c4da42d6b88
Change vars to EnvironmentObject
author | Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> |
---|---|
date | Fri, 12 Mar 2021 08:54:13 +0100 |
parents | 35be981ccb31 |
children | 8fec23e8f7c3 |
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 |
178
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
12 |
244
724916624385
Implement Insider View
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
193
diff
changeset
|
13 // 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
|
14 @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
|
15 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
|
16 |
163
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
17 var body: some View { |
178
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
18 ZStack(alignment: .top) { |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
19 TabView { |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
20 // First view |
248
1c4da42d6b88
Change vars to EnvironmentObject
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
246
diff
changeset
|
21 Watchlist() |
178
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
22 .tabItem { |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
23 Label("Watchlist", systemImage: "list.dash") |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
24 } |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
25 |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
26 // First view |
248
1c4da42d6b88
Change vars to EnvironmentObject
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
246
diff
changeset
|
27 Search() |
178
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
28 .tabItem { |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
29 Label("Search", systemImage: "magnifyingglass") |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
30 } |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
31 |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
32 // First view |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
33 Settings() |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
34 .tabItem { |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
35 Label("Settings", systemImage: "gear") |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
36 } |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
37 } |
165
125d268db489
Update UI
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
164
diff
changeset
|
38 |
248
1c4da42d6b88
Change vars to EnvironmentObject
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
246
diff
changeset
|
39 // Show HUDs |
1c4da42d6b88
Change vars to EnvironmentObject
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
246
diff
changeset
|
40 // Notification |
246
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
41 Notification(text: "Company saved", image: "checkmark.circle") |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
42 .offset(y: hudManager.showNotification ? 0 : -100) |
178
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
43 .animation(.easeInOut) |
246
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
44 |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
45 // Action sheet |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
46 ZStack(alignment: .bottom) { |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
47 Color(.gray) |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
48 .edgesIgnoringSafeArea(.all) |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
49 .opacity(hudManager.showAction ? 0.2: 0) |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
50 .animation(.easeInOut) |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
51 .onTapGesture { hudManager.showAction = false } |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
52 |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
53 ActionView() |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
54 .offset(y: hudManager.showAction ? 0 : 250) |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
55 .animation(.easeInOut) |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
56 .padding(.horizontal) |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
57 } |
163
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
58 } |
193
47d61727054a
Fix crash when nil UserSettings
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
181
diff
changeset
|
59 .accentColor(Color("\(userSettings.first?.theme?.lowercased() ?? "default")Accent")) |
47d61727054a
Fix crash when nil UserSettings
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
181
diff
changeset
|
60 // If this value is not optional it will cause a crash |
163
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
61 } |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
62 } |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
63 |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
64 |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
65 struct ContentView_Previews: PreviewProvider { |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
66 static var previews: some View { |
165
125d268db489
Update UI
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
164
diff
changeset
|
67 ContentView() |
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 } |