Bug fixes
This commit is contained in:
@ -34,7 +34,9 @@ struct InviteCodesView: View {
|
||||
Text("No invite codes found")
|
||||
.foregroundColor(.secondary)
|
||||
Button("Refresh") {
|
||||
refreshInviteCodes()
|
||||
Task {
|
||||
await viewModel.refreshInviteCodes()
|
||||
}
|
||||
}
|
||||
.padding()
|
||||
}
|
||||
@ -49,7 +51,8 @@ struct InviteCodesView: View {
|
||||
.contextMenu {
|
||||
Button(role: .destructive) {
|
||||
Task {
|
||||
await viewModel.pdsService.disableInviteCode(code.id)
|
||||
// After disabling the code, refresh the list
|
||||
await viewModel.disableInviteCode(code.id)
|
||||
}
|
||||
} label: {
|
||||
Label("Disable Code", systemImage: "xmark.circle")
|
||||
@ -71,6 +74,10 @@ struct InviteCodesView: View {
|
||||
Toggle("Show Disabled Codes (\(disabledCodes.count))", isOn: $showDisabledCodes)
|
||||
.padding()
|
||||
.background(Color(.systemBackground))
|
||||
.onChange(of: showDisabledCodes) { _ in
|
||||
// Refresh UI when toggle changes
|
||||
viewModel.refreshUI()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -81,6 +88,7 @@ struct InviteCodesView: View {
|
||||
isCreatingCode = true
|
||||
Task {
|
||||
await viewModel.pdsService.createInviteCode()
|
||||
await viewModel.refreshInviteCodes()
|
||||
isCreatingCode = false
|
||||
}
|
||||
} label: {
|
||||
@ -92,43 +100,18 @@ struct InviteCodesView: View {
|
||||
}
|
||||
.disabled(isCreatingCode)
|
||||
}
|
||||
|
||||
ToolbarItem(placement: .navigationBarLeading) {
|
||||
Button {
|
||||
refreshInviteCodes()
|
||||
} label: {
|
||||
if isRefreshing {
|
||||
ProgressView()
|
||||
} else {
|
||||
Label("Refresh", systemImage: "arrow.clockwise")
|
||||
}
|
||||
}
|
||||
.disabled(isRefreshing)
|
||||
}
|
||||
}
|
||||
.refreshable {
|
||||
await viewModel.pdsService.fetchInviteCodes()
|
||||
print("⏳ Pull-to-refresh: Fetching invite codes")
|
||||
await viewModel.refreshInviteCodes()
|
||||
print("✅ Pull-to-refresh completed")
|
||||
}
|
||||
}
|
||||
.task {
|
||||
// Only fetch if we don't already have data
|
||||
if viewModel.inviteCodes.isEmpty && !viewModel.isLoading {
|
||||
await viewModel.pdsService.fetchInviteCodes()
|
||||
}
|
||||
}
|
||||
.onAppear {
|
||||
// Always attempt to refresh when view appears
|
||||
if !viewModel.isLoading {
|
||||
refreshInviteCodes()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func refreshInviteCodes() {
|
||||
isRefreshing = true
|
||||
Task {
|
||||
await viewModel.pdsService.fetchInviteCodes()
|
||||
isRefreshing = false
|
||||
print("⏳ Task: Fetching invite codes")
|
||||
// Always fetch on initial load
|
||||
await viewModel.refreshInviteCodes()
|
||||
print("✅ Task fetch completed")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -22,7 +22,9 @@ struct UserListView: View {
|
||||
Text("No users found")
|
||||
.foregroundColor(.secondary)
|
||||
Button("Refresh") {
|
||||
refreshUsers()
|
||||
Task {
|
||||
await viewModel.refreshUsers()
|
||||
}
|
||||
}
|
||||
.padding()
|
||||
}
|
||||
@ -70,22 +72,10 @@ struct UserListView: View {
|
||||
}
|
||||
}
|
||||
.navigationTitle("Users")
|
||||
.toolbar {
|
||||
ToolbarItem(placement: .navigationBarTrailing) {
|
||||
Button {
|
||||
refreshUsers()
|
||||
} label: {
|
||||
if isRefreshing {
|
||||
ProgressView()
|
||||
} else {
|
||||
Label("Refresh", systemImage: "arrow.clockwise")
|
||||
}
|
||||
}
|
||||
.disabled(isRefreshing)
|
||||
}
|
||||
}
|
||||
.refreshable {
|
||||
await viewModel.pdsService.fetchUsers()
|
||||
print("⏳ Pull-to-refresh: Fetching users")
|
||||
await viewModel.refreshUsers()
|
||||
print("✅ Pull-to-refresh completed")
|
||||
}
|
||||
.sheet(isPresented: $showingEditSheet) {
|
||||
if let user = editingUser {
|
||||
@ -105,6 +95,7 @@ struct UserListView: View {
|
||||
Task {
|
||||
if await viewModel.pdsService.editUserHandle(userId: user.id, newHandle: newHandle) {
|
||||
showingEditSheet = false
|
||||
await viewModel.refreshUsers() // Refresh to show updated handle
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -123,7 +114,7 @@ struct UserListView: View {
|
||||
if let user = selectedUser {
|
||||
Task {
|
||||
await viewModel.pdsService.suspendUser(userId: user.id, reason: suspensionReason)
|
||||
await viewModel.pdsService.fetchUsers() // Refresh after suspension
|
||||
await viewModel.refreshUsers() // Refresh after suspension
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -138,7 +129,7 @@ struct UserListView: View {
|
||||
if let user = selectedUser {
|
||||
Task {
|
||||
await viewModel.pdsService.reactivateUser(userId: user.id)
|
||||
await viewModel.pdsService.fetchUsers() // Refresh after reactivation
|
||||
await viewModel.refreshUsers() // Refresh after reactivation
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -149,24 +140,10 @@ struct UserListView: View {
|
||||
}
|
||||
}
|
||||
.task {
|
||||
// Only fetch if we don't already have data
|
||||
if viewModel.users.isEmpty && !viewModel.isLoading {
|
||||
await viewModel.pdsService.fetchUsers()
|
||||
}
|
||||
}
|
||||
.onAppear {
|
||||
// Always attempt to refresh when view appears
|
||||
if !viewModel.isLoading {
|
||||
refreshUsers()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func refreshUsers() {
|
||||
isRefreshing = true
|
||||
Task {
|
||||
await viewModel.pdsService.fetchUsers()
|
||||
isRefreshing = false
|
||||
print("⏳ Task: Fetching users")
|
||||
// Always fetch on initial load
|
||||
await viewModel.refreshUsers()
|
||||
print("✅ Task fetch completed")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user