diff options
| author | Dustin Mierau <dustin@mierau.me> | 2025-11-07 10:39:48 -0800 |
|---|---|---|
| committer | Dustin Mierau <dustin@mierau.me> | 2025-11-07 10:39:48 -0800 |
| commit | 39f51fd902bb34272c78ffdfb872c22095382f70 (patch) | |
| tree | fee51effb6431aeb5464931052ecdd0df32c6792 /Hotline/macOS/News | |
| parent | 87f08cf60a5d7c1cf618463916cbac4dab88e0f8 (diff) | |
Further cleanup of previous refactor. Removing old view model and NetSocket. Added some empty states for newsgroups and message board.
Diffstat (limited to 'Hotline/macOS/News')
| -rw-r--r-- | Hotline/macOS/News/NewsView.swift | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/Hotline/macOS/News/NewsView.swift b/Hotline/macOS/News/NewsView.swift index dfc5ab2..a07a441 100644 --- a/Hotline/macOS/News/NewsView.swift +++ b/Hotline/macOS/News/NewsView.swift @@ -18,16 +18,7 @@ struct NewsView: View { var body: some View { Group { if model.serverVersion < 151 { - VStack { - Text("No News") - .bold() - .foregroundStyle(.secondary) - .font(.title3) - Text("This server has news turned off.") - .foregroundStyle(.tertiary) - .font(.system(size: 13)) - } - .padding() + disabledNewsView } else { NavigationStack { @@ -37,14 +28,7 @@ struct NewsView: View { loadingIndicator } else if model.news.isEmpty { - ZStack(alignment: .center) { - Text("No News") - .font(.title) - .multilineTextAlignment(.center) - .foregroundStyle(.secondary) - .padding() - } - .frame(maxWidth: .infinity) + emptyNewsView } else { newsBrowser @@ -142,7 +126,23 @@ struct NewsView: View { } } - var newsBrowser: some View { + private var disabledNewsView: some View { + ContentUnavailableView { + Label("No News", systemImage: "newspaper") + } description: { + Text("This server has turned off newsgroups") + } + } + + private var emptyNewsView: some View { + ContentUnavailableView { + Label("No News", systemImage: "newspaper") + } description: { + Text("This server has no newsgroups") + } + } + + private var newsBrowser: some View { List(model.news, id: \.self, selection: $selection) { newsItem in NewsItemView(news: newsItem, depth: 0).tag(newsItem.id) } @@ -215,7 +215,7 @@ struct NewsView: View { } } - var loadingIndicator: some View { + private var loadingIndicator: some View { VStack { HStack { ProgressView { @@ -227,7 +227,7 @@ struct NewsView: View { .frame(maxWidth: .infinity) } - var articleViewer: some View { + private var articleViewer: some View { ScrollView { VStack(alignment: .leading, spacing: 0) { if let selection = selection, selection.type == .article { |