Compare commits

..

4 Commits

Author SHA1 Message Date
526a57b556 patch error 2025-10-26 02:52:16 +03:00
7f73216936 add msg 2025-10-26 02:49:59 +03:00
128ed5723a edit loading 2025-10-26 02:47:58 +03:00
0a7d519567 add error msg 2025-10-26 02:39:55 +03:00
2 changed files with 57 additions and 49 deletions

View File

@ -94,9 +94,6 @@
},
"Email не подтверждён. Подтвердите, чтобы активировать дополнительные проверки." : {
"comment" : "Описание необходимости подтверждения email"
},
"error" : {
},
"Fun Fest" : {
"comment" : "Fun Fest",
@ -644,6 +641,9 @@
},
"Значение сохранено в буфере обмена." : {
"comment" : "Сообщение после копирования"
},
"Идет загрузка..." : {
},
"Идея" : {
"comment" : "feedback category: idea",

View File

@ -25,14 +25,6 @@ struct BlockedUsersView: View {
emptyState
} else {
usersSection
if isLoading {
Section {
ProgressView()
.frame(maxWidth: .infinity, alignment: .center)
}
} else if errorMessageDown != nil{
Text("error")
}
}
}
.navigationTitle(NSLocalizedString("Заблокированные", comment: ""))
@ -88,44 +80,60 @@ struct BlockedUsersView: View {
private var usersSection: some View {
Section(header: Text(NSLocalizedString("Заблокированные", comment: ""))) {
ForEach(blockedUsers) {
user in
HStack(spacing: 12) {
Circle()
.fill(Color.accentColor.opacity(0.15))
.frame(width: 44, height: 44)
.overlay(
Text(user.initials)
.font(.headline)
.foregroundColor(.accentColor)
)
VStack(alignment: .leading, spacing: 4) {
Text(user.displayName)
.font(.body)
if let handle = user.handle {
Text(handle)
.font(.caption)
.foregroundColor(.secondary)
}
}
Spacer()
ForEach(blockedUsers) { user in
userRow(user)
}
if isLoading {
Text("Идет загрузка...")
.foregroundColor(.gray)
.frame(maxWidth: .infinity, alignment: .center)
.listRowBackground(Color.clear)
.listRowSeparator(.hidden)
} else if let errorMessage = errorMessageDown {
Text(errorMessage)
.foregroundColor(.red)
.frame(maxWidth: .infinity, alignment: .center)
.listRowBackground(Color.clear)
.listRowSeparator(.hidden)
}
}
}
private func userRow(_ user: BlockedUser) -> some View {
HStack(spacing: 12) {
Circle()
.fill(Color.accentColor.opacity(0.15))
.frame(width: 44, height: 44)
.overlay(
Text(user.initials)
.font(.headline)
.foregroundColor(.accentColor)
)
VStack(alignment: .leading, spacing: 4) {
Text(user.displayName)
.font(.body)
if let handle = user.handle {
Text(handle)
.font(.caption)
.foregroundColor(.secondary)
}
.padding(.vertical, 0)
.swipeActions(edge: .trailing) {
Button(role: .destructive) {
pendingUnblock = user
showUnblockConfirmation = true
} label: {
Label(NSLocalizedString("Разблокировать", comment: ""), systemImage: "person.crop.circle.badge.xmark")
}
.disabled(removingUserIds.contains(user.id))
}
.onAppear {
if user.id == blockedUsers.last?.id {
Task {
await loadBlockedUsers()
}
}
}
Spacer()
}
.padding(.vertical, 0)
.swipeActions(edge: .trailing) {
Button(role: .destructive) {
pendingUnblock = user
showUnblockConfirmation = true
} label: {
Label(NSLocalizedString("Разблокировать", comment: ""), systemImage: "person.crop.circle.badge.xmark")
}
.disabled(removingUserIds.contains(user.id))
}
.onAppear {
if user.id == blockedUsers.last?.id {
Task {
await loadBlockedUsers()
}
}
}
@ -185,7 +193,7 @@ struct BlockedUsersView: View {
if offset == 0 {
loadError = message
}
activeAlert = .error(message: message)
// activeAlert = .error(message: message)
errorMessageDown = message
if AppConfig.DEBUG { print("[BlockedUsersView] load blocked users failed: \(error)") }
}