summaryrefslogtreecommitdiff
path: root/packages/backend/src/misc
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/misc')
-rw-r--r--packages/backend/src/misc/is-user-related.ts19
1 files changed, 16 insertions, 3 deletions
diff --git a/packages/backend/src/misc/is-user-related.ts b/packages/backend/src/misc/is-user-related.ts
index 862d6e6a38..6f72082733 100644
--- a/packages/backend/src/misc/is-user-related.ts
+++ b/packages/backend/src/misc/is-user-related.ts
@@ -3,7 +3,17 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-export function isUserRelated(note: any, userIds: Set<string>, ignoreAuthor = false): boolean {
+import type { MiUser } from '@/models/_.js';
+
+interface NoteLike {
+ userId: MiUser['id'];
+ reply?: NoteLike | null;
+ renote?: NoteLike | null;
+ replyUserId?: MiUser['id'] | null;
+ renoteUserId?: MiUser['id'] | null;
+}
+
+export function isUserRelated(note: NoteLike | null | undefined, userIds: Set<string>, ignoreAuthor = false): boolean {
if (!note) {
return false;
}
@@ -12,13 +22,16 @@ export function isUserRelated(note: any, userIds: Set<string>, ignoreAuthor = fa
return true;
}
- if (note.reply != null && note.reply.userId !== note.userId && userIds.has(note.reply.userId)) {
+ const replyUserId = note.replyUserId ?? note.reply?.userId;
+ if (replyUserId != null && replyUserId !== note.userId && userIds.has(replyUserId)) {
return true;
}
- if (note.renote != null && note.renote.userId !== note.userId && userIds.has(note.renote.userId)) {
+ const renoteUserId = note.renoteUserId ?? note.renote?.userId;
+ if (renoteUserId != null && renoteUserId !== note.userId && userIds.has(renoteUserId)) {
return true;
}
return false;
}
+