diff options
| author | Dustin Mierau <dustin@mierau.me> | 2023-12-20 15:33:33 -0800 |
|---|---|---|
| committer | Dustin Mierau <dustin@mierau.me> | 2023-12-20 15:33:33 -0800 |
| commit | 5658209bd322449f4b54fa4a3047a485cc2ed32c (patch) | |
| tree | 1eb82432ffb95873f1ff1b275e8eabfb74f1e14c /Hotline/macOS/ServerView.swift | |
| parent | cc19df82bab213bd628792e0b3eca8c2ee986506 (diff) | |
Add refresh button to Servers window. Fix styling on disclosure arrow. Remove icons from news list. Trying tooltips on some buttons.
Diffstat (limited to 'Hotline/macOS/ServerView.swift')
| -rw-r--r-- | Hotline/macOS/ServerView.swift | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/Hotline/macOS/ServerView.swift b/Hotline/macOS/ServerView.swift index eca6f54..d858c6e 100644 --- a/Hotline/macOS/ServerView.swift +++ b/Hotline/macOS/ServerView.swift @@ -2,6 +2,7 @@ import SwiftUI enum MenuItemType { case banner + case progress case chat case news case messageBoard @@ -70,6 +71,7 @@ private func connectionStatusToProgress(status: HotlineClientStatus) -> Double { struct ServerView: View { @Environment(Hotline.self) private var model: Hotline @State private var selectedCategoryId: MenuItem.ID? + @Environment(\.dismiss) var dismiss let server: Server @@ -89,8 +91,6 @@ struct ServerView: View { var body: some View { NavigationSplitView { -// Divider() - List(selection: $selection) { HStack { @@ -111,9 +111,13 @@ struct ServerView: View { .padding(.bottom, 16) if model.status != .loggedIn { - ProgressView(value: connectionStatusToProgress(status: model.status)) - .padding() - .selectionDisabled() + HStack { + ProgressView(value: connectionStatusToProgress(status: model.status)) + .padding() + } + .tag(MenuItem(name: "progress", image: "", type: .progress)) + .frame(maxWidth: .infinity, minHeight: 60) + .selectionDisabled() } if model.status == .loggedIn { @@ -137,8 +141,14 @@ struct ServerView: View { Text("🙂") .font(.headline) if user.status.contains(.admin) { - Text(user.name) - .foregroundStyle(.red, .red.opacity(0.3)) + if user.status.contains(.idle) { + Text(user.name) + .foregroundStyle(.red.opacity(0.5)) + } + else { + Text(user.name) + .foregroundStyle(.red) + } } else if user.status.contains(.idle) { Text(user.name) @@ -155,11 +165,15 @@ struct ServerView: View { } } } + .frame(minWidth: 200, idealWidth: 200) } detail: { if let selection = self.selection { switch selection.type { case .banner: EmptyView() + case .progress + : + EmptyView() case .chat: ChatView() case .news: @@ -184,11 +198,15 @@ struct ServerView: View { } } .onDisappear { - print("DISCONNECTING FROM SERVER") Task { model.disconnect() } } + .onChange(of: model.status) { + if model.status == .disconnected { + dismiss() + } + } } } |