fix: masquerades and nicknames in replys and messages

This commit is contained in:
Zomatree
2024-02-08 19:52:10 +00:00
parent 551c3147e0
commit ea46f5886f
3 changed files with 11 additions and 8 deletions
@@ -50,8 +50,9 @@ struct InnerMessageReplyView: View {
if let message = message {
HStack(spacing: 4) {
let author = viewState.users[message.author] ?? User(id: "0", username: "Unknown User", discriminator: "0000")
let member = viewState.currentServer.id.flatMap { viewState.members[$0] }.flatMap { $0[message.author] }
Avatar(user: author, width: 16, height: 16)
Avatar(user: author, member: member, masquerade: message.masquerade, width: 16, height: 16)
HStack(spacing: 0) {
if mentions?.contains(message.author) == true {
@@ -59,7 +60,7 @@ struct InnerMessageReplyView: View {
.font(.caption)
}
Text(author.username)
Text(message.masquerade?.name ?? member?.nickname ?? author.display_name ?? author.username)
.font(.caption)
}
@@ -48,7 +48,9 @@ struct MessageView: View {
VStack(alignment: .leading, spacing: 0) {
HStack {
Text(verbatim: viewModel.message.masquerade?.name ?? viewModel.author.display_name ?? viewModel.author.username)
let name = viewModel.message.masquerade?.name ?? viewModel.member?.nickname ?? viewModel.author.display_name ?? viewModel.author.username
let _ = print(name)
Text(verbatim: name)
.onTapGesture {
if !isStatic {
showMemberSheet.toggle()
@@ -80,15 +82,15 @@ struct MessageView: View {
}
.listRowSeparator(.hidden)
.sheet(isPresented: $showMemberSheet) {
let user = viewModel.$author
let user = viewModel.author
if case .server(let serverId) = viewState.currentServer {
let serverMembers = Binding($viewState.members[serverId])!
let member = serverMembers[user.id]
let serverMembers = viewState.members[serverId]
let member = serverMembers?[user.id]
UserSheet(user: user, member: member)
} else {
UserSheet(user: user, member: Binding.constant(nil))
UserSheet(user: user, member: nil)
}
}
}
+1 -1
View File
@@ -151,7 +151,7 @@ struct FriendsList: View {
.scrollContentBackground(.hidden)
.background(viewState.theme.background.color)
.sheet(item: $selectedUser, content: { user in
UserSheet(user: .constant(user), member: .constant(nil))
UserSheet(user: user, member: nil)
})
}
}