Mercurial > public > lazybear
annotate LazyBear/ContentView.swift @ 246:35be981ccb31
Implementing CustomAction view
author | Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> |
---|---|
date | Wed, 10 Mar 2021 21:19:28 +0100 |
parents | 724916624385 |
children | 1c4da42d6b88 |
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 { |
244
724916624385
Implement Insider View
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
193
diff
changeset
|
11 // Start ObservedObjects |
246
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
12 @ObservedObject var hudManager = HudManager() |
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 { |
178
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
19 ZStack(alignment: .top) { |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
20 TabView { |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
21 // First view |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
22 Watchlist(hudManager: hudManager) |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
23 .tabItem { |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
24 Label("Watchlist", systemImage: "list.dash") |
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 |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
27 // First view |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
28 Search(hudManager: hudManager) |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
29 .tabItem { |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
30 Label("Search", systemImage: "magnifyingglass") |
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 |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
33 // First view |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
34 Settings() |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
35 .tabItem { |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
36 Label("Settings", systemImage: "gear") |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
37 } |
c1aa75608c27
Implement HUD
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
165
diff
changeset
|
38 } |
165
125d268db489
Update UI
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
164
diff
changeset
|
39 |
246
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
40 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
|
41 .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
|
42 .animation(.easeInOut) |
246
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
43 |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
44 // Action sheet |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
45 ZStack(alignment: .bottom) { |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
46 Color(.gray) |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
47 .edgesIgnoringSafeArea(.all) |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
48 .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
|
49 .animation(.easeInOut) |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
50 .onTapGesture { hudManager.showAction = false } |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
51 |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
52 ActionView() |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
53 .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
|
54 .animation(.easeInOut) |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
55 .padding(.horizontal) |
35be981ccb31
Implementing CustomAction view
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
244
diff
changeset
|
56 } |
163
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
57 } |
193
47d61727054a
Fix crash when nil UserSettings
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
181
diff
changeset
|
58 .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
|
59 // 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
|
60 } |
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 struct ContentView_Previews: PreviewProvider { |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
65 static var previews: some View { |
165
125d268db489
Update UI
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
164
diff
changeset
|
66 ContentView() |
163
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
67 } |
9d519f230f26
Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
68 } |