Included a blinded id comparison for adding the delete action

pull/783/head
Morgan Pretty 3 years ago
parent 9a25688146
commit 93d9f51140

@ -111,6 +111,7 @@ extension ContextMenuVC {
for cellViewModel: MessageViewModel, for cellViewModel: MessageViewModel,
recentEmojis: [EmojiWithSkinTones], recentEmojis: [EmojiWithSkinTones],
currentUserPublicKey: String, currentUserPublicKey: String,
currentUserBlindedPublicKey: String?,
currentUserIsOpenGroupModerator: Bool, currentUserIsOpenGroupModerator: Bool,
currentThreadIsMessageRequest: Bool, currentThreadIsMessageRequest: Bool,
delegate: ContextMenuActionDelegate? delegate: ContextMenuActionDelegate?
@ -165,6 +166,7 @@ extension ContextMenuVC {
cellViewModel.threadVariant != .openGroup || cellViewModel.threadVariant != .openGroup ||
currentUserIsOpenGroupModerator || currentUserIsOpenGroupModerator ||
cellViewModel.authorId == currentUserPublicKey || cellViewModel.authorId == currentUserPublicKey ||
cellViewModel.authorId == currentUserBlindedPublicKey ||
cellViewModel.state == .failed cellViewModel.state == .failed
) )
let canBan: Bool = ( let canBan: Bool = (

@ -778,6 +778,7 @@ extension ConversationVC:
for: cellViewModel, for: cellViewModel,
recentEmojis: (self.viewModel.threadData.recentReactionEmoji ?? []).compactMap { EmojiWithSkinTones(rawValue: $0) }, recentEmojis: (self.viewModel.threadData.recentReactionEmoji ?? []).compactMap { EmojiWithSkinTones(rawValue: $0) },
currentUserPublicKey: self.viewModel.threadData.currentUserPublicKey, currentUserPublicKey: self.viewModel.threadData.currentUserPublicKey,
currentUserBlindedPublicKey: self.viewModel.threadData.currentUserBlindedPublicKey,
currentUserIsOpenGroupModerator: OpenGroupManager.isUserModeratorOrAdmin( currentUserIsOpenGroupModerator: OpenGroupManager.isUserModeratorOrAdmin(
self.viewModel.threadData.currentUserPublicKey, self.viewModel.threadData.currentUserPublicKey,
for: self.viewModel.threadData.openGroupRoomToken, for: self.viewModel.threadData.openGroupRoomToken,

@ -115,6 +115,7 @@ public class ConversationViewModel: OWSAudioPlayerDelegate {
} }
) )
) )
.populatingCurrentUserBlindedKey()
/// This is all the data the screen needs to populate itself, please see the following link for tips to help optimise /// This is all the data the screen needs to populate itself, please see the following link for tips to help optimise
/// performance https://github.com/groue/GRDB.swift#valueobservation-performance /// performance https://github.com/groue/GRDB.swift#valueobservation-performance
@ -130,7 +131,7 @@ public class ConversationViewModel: OWSAudioPlayerDelegate {
private func setupObservableThreadData(for threadId: String) -> ValueObservation<ValueReducers.RemoveDuplicates<ValueReducers.Fetch<SessionThreadViewModel?>>> { private func setupObservableThreadData(for threadId: String) -> ValueObservation<ValueReducers.RemoveDuplicates<ValueReducers.Fetch<SessionThreadViewModel?>>> {
return ValueObservation return ValueObservation
.trackingConstantRegion { db -> SessionThreadViewModel? in .trackingConstantRegion { [weak self] db -> SessionThreadViewModel? in
let userPublicKey: String = getUserHexEncodedPublicKey(db) let userPublicKey: String = getUserHexEncodedPublicKey(db)
let recentReactionEmoji: [String] = try Emoji.getRecent(db, withDefaultEmoji: true) let recentReactionEmoji: [String] = try Emoji.getRecent(db, withDefaultEmoji: true)
let threadViewModel: SessionThreadViewModel? = try SessionThreadViewModel let threadViewModel: SessionThreadViewModel? = try SessionThreadViewModel
@ -139,6 +140,11 @@ public class ConversationViewModel: OWSAudioPlayerDelegate {
return threadViewModel return threadViewModel
.map { $0.with(recentReactionEmoji: recentReactionEmoji) } .map { $0.with(recentReactionEmoji: recentReactionEmoji) }
.map { viewModel -> SessionThreadViewModel in
viewModel.populatingCurrentUserBlindedKey(
currentUserBlindedPublicKeyForThisThread: self?.threadData.currentUserBlindedPublicKey
)
}
} }
.removeDuplicates() .removeDuplicates()
} }

Loading…
Cancel
Save