diff --git a/src/client/app/common/scripts/should-mute-note.ts b/src/client/app/common/scripts/should-mute-note.ts index 4eab76421d..8a6430b1df 100644 --- a/src/client/app/common/scripts/should-mute-note.ts +++ b/src/client/app/common/scripts/should-mute-note.ts @@ -2,8 +2,17 @@ export default function(me, settings, note) { const isMyNote = note.userId == me.id; const isPureRenote = note.renoteId != null && note.text == null && note.fileIds.length == 0 && note.poll == null; - return settings.showMyRenotes === false && isMyNote && isPureRenote || - settings.showRenotedMyNotes === false && isPureRenote && note.renote.userId == me.id || - settings.showLocalRenotes === false && isPureRenote && note.renote.user.host == null || - !isMyNote && note.text && settings.mutedWords.some(q => q.length > 0 && !q.some(word => !note.text.includes(word))); + const includesMutedWords = (text: string) => + text + ? settings.mutedWords.some(q => q.length > 0 && !q.some(word => !text.includes(word))) + : false; + + return ( + (!isMyNote && note.reply && includesMutedWords(note.reply.text)) || + (!isMyNote && note.renote && includesMutedWords(note.renote.text)) || + (settings.showMyRenotes === false && isMyNote && isPureRenote) || + (settings.showRenotedMyNotes === false && isPureRenote && note.renote.userId == me.id) || + (settings.showLocalRenotes === false && isPureRenote && note.renote.user.host == null) || + (!isMyNote && includesMutedWords(note.text)) + ); }