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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }