🐛 Fix bugs
This commit is contained in:
@@ -12,11 +12,11 @@ import SwiftUI
|
||||
struct ActivityListView: View {
|
||||
@StateObject private var viewModel: ActivityViewModel
|
||||
@EnvironmentObject var appState: AppState
|
||||
|
||||
|
||||
init(filter: String, mockActivities: [SnActivity]? = nil) {
|
||||
_viewModel = StateObject(wrappedValue: ActivityViewModel(filter: filter, mockActivities: mockActivities))
|
||||
}
|
||||
|
||||
|
||||
var body: some View {
|
||||
Group {
|
||||
if viewModel.isLoading {
|
||||
@@ -37,24 +37,27 @@ struct ActivityListView: View {
|
||||
switch activity.type {
|
||||
case "posts.new", "posts.new.replies":
|
||||
if case .post(let post) = activity.data {
|
||||
NavigationLink(destination: PostDetailView(post: post)) {
|
||||
NavigationLink(
|
||||
destination: PostDetailView(post: post).environmentObject(appState)
|
||||
) {
|
||||
PostRowView(post: post)
|
||||
}
|
||||
}
|
||||
case "discovery":
|
||||
if case .discovery(let discoveryData) = activity.data {
|
||||
DiscoveryView(discoveryData: discoveryData)
|
||||
}
|
||||
if case .discovery(let discoveryData) = activity.data {
|
||||
DiscoveryView(discoveryData: discoveryData)
|
||||
}
|
||||
default:
|
||||
Text("Unknown activity type: \(activity.type)")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.task {
|
||||
// Only fetch if appState is ready and token/serverUrl are available
|
||||
.onAppear {
|
||||
if appState.isReady, let token = appState.token, let serverUrl = appState.serverUrl {
|
||||
await viewModel.fetchActivities(token: token, serverUrl: serverUrl)
|
||||
Task.detached {
|
||||
await viewModel.fetchActivities(token: token, serverUrl: serverUrl)
|
||||
}
|
||||
}
|
||||
}
|
||||
.navigationTitle(viewModel.filter)
|
||||
|
||||
@@ -11,53 +11,49 @@ import SwiftUI
|
||||
struct ExploreView: View {
|
||||
@StateObject private var appState = AppState()
|
||||
@State private var isComposing = false
|
||||
@State private var selectedTab: String = "Explore"
|
||||
|
||||
var body: some View {
|
||||
NavigationStack {
|
||||
Group {
|
||||
if appState.isReady {
|
||||
TabView {
|
||||
NavigationStack {
|
||||
ActivityListView(filter: "Explore")
|
||||
}
|
||||
if appState.isReady {
|
||||
TabView(selection: $selectedTab) {
|
||||
ActivityListView(filter: "Explore")
|
||||
.tag("Explore")
|
||||
.tabItem {
|
||||
Label("Explore", systemImage: "safari")
|
||||
}
|
||||
|
||||
NavigationStack {
|
||||
ActivityListView(filter: "Subscriptions")
|
||||
}
|
||||
ActivityListView(filter: "Subscriptions")
|
||||
.tag("Subscriptions")
|
||||
.tabItem {
|
||||
Label("Subscriptions", systemImage: "star")
|
||||
}
|
||||
|
||||
NavigationStack {
|
||||
ActivityListView(filter: "Friends")
|
||||
}
|
||||
ActivityListView(filter: "Friends")
|
||||
.tag("Friends")
|
||||
.tabItem {
|
||||
Label("Friends", systemImage: "person.2")
|
||||
}
|
||||
}
|
||||
.environmentObject(appState)
|
||||
} else {
|
||||
ProgressView { Text("Connecting to phone...") }
|
||||
.onAppear {
|
||||
appState.requestData()
|
||||
}
|
||||
.navigationTitle(selectedTab)
|
||||
.toolbar {
|
||||
ToolbarItem(placement: .primaryAction) {
|
||||
Button(action: { isComposing = true }) {
|
||||
Label("Compose", systemImage: "plus")
|
||||
}
|
||||
}
|
||||
}
|
||||
.navigationTitle("Explore")
|
||||
.toolbar {
|
||||
ToolbarItem(placement: .primaryAction) {
|
||||
Button(action: { isComposing = true }) {
|
||||
Label("Compose", systemImage: "plus")
|
||||
}
|
||||
}
|
||||
.environmentObject(appState)
|
||||
} else {
|
||||
ProgressView { Text("Connecting to phone...") }
|
||||
.onAppear {
|
||||
appState.requestData()
|
||||
}
|
||||
}
|
||||
.sheet(isPresented: $isComposing) {
|
||||
ComposePostView()
|
||||
.environmentObject(appState)
|
||||
}
|
||||
}
|
||||
.sheet(isPresented: $isComposing) {
|
||||
ComposePostView()
|
||||
.environmentObject(appState)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user