# UNDF: UNDF-2026-000000831 # UNDF: (pending) --- a/src/Simplex/Chat/Library/Internal.hs +++ b/src/Simplex/Chat/Library/Internal.hs @@ -30,6 +30,7 @@ import Control.Monad.Except import Data.Bifunctor (bimap, first) import Data.Fixed (Fixed (..)) import Data.List (find, foldl', mapAccumL, partition) +import qualified Data.Set as S import Data.Map.Strict (Map) import qualified Data.Map.Strict as M ... @@ -1064,9 +1064,11 @@ introduceToRemaining vr user gInfo m = do (members, introducedGMIds) <- withStore' $ \db -> (,) <$> getGroupMembers db vr user gInfo <*> getIntroducedGroupMemberIds db m - let recipients = filter (introduceMemP introducedGMIds) members + let introducedSet = S.fromList introducedGMIds + recipients = filter (introduceMemP introducedSet) members introduceMember vr user gInfo m recipients Nothing where - introduceMemP introducedGMIds mem = + introduceMemP introducedSet mem = memberCurrent mem - && groupMemberId' mem `notElem` introducedGMIds + && groupMemberId' mem `S.notMember` introducedSet && groupMemberId' mem /= groupMemberId' m