From ea46f5886f4e28bb4e82c2deaafe7d9f4f0a867d Mon Sep 17 00:00:00 2001 From: Zomatree Date: Thu, 8 Feb 2024 19:52:10 +0000 Subject: [PATCH] fix: masquerades and nicknames in replys and messages --- Revolt/Components/MessageRenderer/MessageReply.swift | 5 +++-- Revolt/Components/MessageRenderer/MessageView.swift | 12 +++++++----- Revolt/Pages/FriendsList.swift | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Revolt/Components/MessageRenderer/MessageReply.swift b/Revolt/Components/MessageRenderer/MessageReply.swift index 0f10bd3..fe960e5 100644 --- a/Revolt/Components/MessageRenderer/MessageReply.swift +++ b/Revolt/Components/MessageRenderer/MessageReply.swift @@ -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) } diff --git a/Revolt/Components/MessageRenderer/MessageView.swift b/Revolt/Components/MessageRenderer/MessageView.swift index cd705d2..ab5bdc6 100644 --- a/Revolt/Components/MessageRenderer/MessageView.swift +++ b/Revolt/Components/MessageRenderer/MessageView.swift @@ -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) } } } diff --git a/Revolt/Pages/FriendsList.swift b/Revolt/Pages/FriendsList.swift index 5357dba..5a5042d 100644 --- a/Revolt/Pages/FriendsList.swift +++ b/Revolt/Pages/FriendsList.swift @@ -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) }) } }