From 2c345dccfc9d5acf72dd2c4f3320b1c4e2621536 Mon Sep 17 00:00:00 2001 From: iliya Date: Mon, 9 Mar 2026 21:33:13 +0200 Subject: [PATCH] fix: use OR logic for FROM/TO message filters When both FROM and TO filters are active simultaneously, messages matching either direction are shown instead of requiring both conditions (which produced empty results for same-member selections like FROM:bob + TO:bob). Single-filter behavior remains unchanged. --- src/renderer/components/team/TeamDetailView.tsx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/renderer/components/team/TeamDetailView.tsx b/src/renderer/components/team/TeamDetailView.tsx index 905c35f6..a6cfb244 100644 --- a/src/renderer/components/team/TeamDetailView.tsx +++ b/src/renderer/components/team/TeamDetailView.tsx @@ -622,11 +622,16 @@ export const TeamDetailView = ({ teamName }: TeamDetailViewProps): React.JSX.Ele if (!messagesFilter.showNoise) { list = list.filter((m) => !isInboxNoiseMessage(typeof m.text === 'string' ? m.text : '')); } - if (messagesFilter.from.size > 0) { - list = list.filter((m) => m.from?.trim() && messagesFilter.from.has(m.from.trim())); - } - if (messagesFilter.to.size > 0) { - list = list.filter((m) => m.to?.trim() && messagesFilter.to.has(m.to.trim())); + const hasFrom = messagesFilter.from.size > 0; + const hasTo = messagesFilter.to.size > 0; + if (hasFrom || hasTo) { + list = list.filter((m) => { + const fromMatch = hasFrom && m.from?.trim() && messagesFilter.from.has(m.from.trim()); + const toMatch = hasTo && m.to?.trim() && messagesFilter.to.has(m.to.trim()); + // When both filters active → OR (show messages matching either direction) + // When only one active → just that filter + return fromMatch || toMatch; + }); } const q = messagesSearchQuery.trim().toLowerCase(); if (q) {