mirror of
git://jb55.com/damus
synced 2024-09-18 19:23:49 +00:00
dm: Do not show DMs from muted users
This commits causes DMs from muted users to be filtered out. It also fixes an issue where the DM list would appear completely blank in certain scenarios. Testing ------- CONDITIONAL PASS Device: iPhone 14 Pro simulator iOS: 17.0 Damus: This commit Setup: - Three test accounts (A, B, and C). "A" will be the account running on the device under test. - Account "A" should start with no DMs 1. Send a direct message from "B" to "A", and reply from "A". 2. Go to DMs -> DMs tab. Conversation with "B" should appear. PASS 3. Mute user "B" (I did it via profiles page). 4. Go back to DMs view via back button. DMs from "B" should not appear. PASS 5. Since there are no DMs, the screen should display "Nothing to see here". PASS 5. Close Damus app via iOS app switcher and reopen Damus 6. Check DMs list. Should only show "Nothing to see here". PASS 7. Send a DM from account "C" to "A" and reply. 8. Go back to DMs -> DMs tab. Only the message from account "C" should appear. 9. Unmute user "B" 10. Go back to DMs. Messages from "B" and "C" should appear. PASS Notes: - There was one instance when the first DM from account "C" appeared in the "DMs" tab (Not "requests") momentarily. After a bit it went into requests as expected. - When unmuting user "B", I had to refresh the DM list by switching tabs, meaning that the view did not immediately update. Upon inspection, the two behaviors above are not caused by this change, so this is a conditional pass. Closes: https://github.com/damus-io/damus/issues/1350 Changelog-Fixed: Do not show DMs from muted users Signed-off-by: Daniel D’Aquino <daniel@daquino.me> Reviewed-by: William Casarin <jb55@jb55.com> Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
parent
3b76fcb743
commit
06eb9d4a0e
@ -22,11 +22,12 @@ struct DirectMessagesView: View {
|
||||
func MainContent(requests: Bool) -> some View {
|
||||
ScrollView {
|
||||
LazyVStack(spacing: 0) {
|
||||
if model.dms.isEmpty, !model.loading {
|
||||
let dms = requests ? model.message_requests : model.friend_dms
|
||||
let filtered_dms = filter_dms(dms: dms)
|
||||
if filtered_dms.isEmpty, !model.loading {
|
||||
EmptyTimelineView()
|
||||
} else {
|
||||
let dms = requests ? model.message_requests : model.friend_dms
|
||||
ForEach(dms, id: \.pubkey) { dm in
|
||||
ForEach(filtered_dms, id: \.pubkey) { dm in
|
||||
MaybeEvent(dm)
|
||||
.padding(.top, 10)
|
||||
}
|
||||
@ -36,6 +37,12 @@ struct DirectMessagesView: View {
|
||||
}
|
||||
}
|
||||
|
||||
func filter_dms(dms: [DirectMessageModel]) -> [DirectMessageModel] {
|
||||
return dms.filter({ dm in
|
||||
return damus_state.settings.friend_filter.filter(contacts: damus_state.contacts, pubkey: dm.pubkey) && !damus_state.contacts.is_muted(dm.pubkey)
|
||||
})
|
||||
}
|
||||
|
||||
var options: EventViewOptions {
|
||||
if self.damus_state.settings.translate_dms {
|
||||
return [.truncate_content, .no_action_bar]
|
||||
@ -46,8 +53,7 @@ struct DirectMessagesView: View {
|
||||
|
||||
func MaybeEvent(_ model: DirectMessageModel) -> some View {
|
||||
Group {
|
||||
let ok = damus_state.settings.friend_filter.filter(contacts: damus_state.contacts, pubkey: model.pubkey)
|
||||
if ok, let ev = model.events.last {
|
||||
if let ev = model.events.last {
|
||||
EventView(damus: damus_state, event: ev, pubkey: model.pubkey, options: options)
|
||||
.onTapGesture {
|
||||
self.model.set_active_dm_model(model)
|
||||
|
Loading…
Reference in New Issue
Block a user