diff options
| author | Dustin Mierau <dustin@mierau.me> | 2023-12-04 14:31:12 -0800 |
|---|---|---|
| committer | Dustin Mierau <dustin@mierau.me> | 2023-12-04 14:31:12 -0800 |
| commit | b1a176ba3da2c7cf815084f0f8109008fe763809 (patch) | |
| tree | 5bbf52900d5dab9091216cc0f1e5dc84ad69cc9f /Hotline/Views/TrackerView.swift | |
| parent | 471546236b8991f61d26c0e3aa8ee48b83b983af (diff) | |
Starting to get app views displaying data (roughly)
Diffstat (limited to 'Hotline/Views/TrackerView.swift')
| -rw-r--r-- | Hotline/Views/TrackerView.swift | 85 |
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() } } |