aboutsummaryrefslogtreecommitdiff
path: root/Hotline/Views/TrackerView.swift
diff options
context:
space:
mode:
authorDustin Mierau <dustin@mierau.me>2023-12-04 14:31:12 -0800
committerDustin Mierau <dustin@mierau.me>2023-12-04 14:31:12 -0800
commitb1a176ba3da2c7cf815084f0f8109008fe763809 (patch)
tree5bbf52900d5dab9091216cc0f1e5dc84ad69cc9f /Hotline/Views/TrackerView.swift
parent471546236b8991f61d26c0e3aa8ee48b83b983af (diff)
Starting to get app views displaying data (roughly)
Diffstat (limited to 'Hotline/Views/TrackerView.swift')
-rw-r--r--Hotline/Views/TrackerView.swift85
1 files changed, 38 insertions, 47 deletions
diff --git a/Hotline/Views/TrackerView.swift b/Hotline/Views/TrackerView.swift
index 5d1afe2..edb2330 100644
--- a/Hotline/Views/TrackerView.swift
+++ b/Hotline/Views/TrackerView.swift
@@ -5,63 +5,54 @@ struct TrackerView: View {
// @Environment(\.modelContext) private var modelContext
// @Query private var items: [Item]
+ @Environment(HotlineState.self) private var appState
@Environment(HotlineClient.self) private var hotline
@Environment(HotlineTrackerClient.self) private var tracker
- // @StateObject var tracker = HotlineTrackerClient(address: "hltracker.com")
- // @StateObject var client = HotlineClient.shared
-
@State private var selectedServer: HotlineServer?
- @State private var showingAgreement = false
- @State private var showingConnectSheet = false
-
- // @Bindable var trackerTest = tracker
var body: some View {
- List(selection: $selectedServer) {
- ForEach(tracker.servers) { server in
- HStack {
- Text("🌎")
- Text(server.name!).bold()
- Spacer()
- Text("\(server.users)").opacity(0.6)
+ @Bindable var config = appState
+
+ NavigationView {
+ List(selection: $selectedServer) {
+ ForEach(tracker.servers) { server in
+ TrackerServerView(server: server)
}
- .listRowBackground(Color(white: 0.96))
- .listRowInsets(EdgeInsets(top: 0, leading: 16.0, bottom: 0, trailing: 16.0))
- .listRowSeparator(.visible, edges: VerticalEdge.Set.all)
- .listRowSeparatorTint(Color(white: 1.0))
- .tag(server)
}
- }
- .background(Color(white: 0.96))
- .listStyle(.plain)
- .frame(maxWidth: .infinity)
- .task {
- tracker.fetch()
- }
- .sheet(item: $selectedServer) { item in
- TrackerServerView(server: item)
- }
- .sheet(isPresented: Binding(get: { hotline.agreement != nil }, set: { _ in })) {
- AgreementView(text: hotline.agreement!)
- }
- .navigationTitle("Tracker")
- .navigationBarTitleDisplayMode(.inline)
- .toolbar {
- ToolbarItem(placement: .topBarTrailing) {
- Image(systemName: "gearshape.fill")
+ .background(Color(white: 0.96))
+ .listStyle(.plain)
+ .frame(maxWidth: .infinity)
+ .task {
+ tracker.fetch()
+ }
+// .sheet(item: $selectedServer) { item in
+// TrackerServerView(server: item)
+// }
+ .refreshable {
+ tracker.fetch()
+ }
+ .navigationTitle("Tracker")
+ .navigationBarTitleDisplayMode(.inline)
+ .toolbar {
+ ToolbarItem(placement: .topBarTrailing) {
+ Button {
+ config.dismissTracker()
+ } label: {
+ Image(systemName: "xmark.circle.fill")
+ .symbolRenderingMode(.hierarchical)
+ .foregroundColor(.gray)
+ }
+ }
+ // ToolbarItem(placement: .topBarTrailing) {
+ // Image(systemName: "camera.fill")
+ // }
+ // ToolbarItem(placement: .principal) {
+ // Text("Username")
+ // }
}
- // ToolbarItem(placement: .topBarTrailing) {
- // Image(systemName: "camera.fill")
- // }
- // ToolbarItem(placement: .principal) {
- // Text("Username")
- // }
- }
- .refreshable {
- tracker.fetch()
}
- .interactiveDismissDisabled()
+// .interactiveDismissDisabled()
}
}