diff options
| author | anatawa12 <anatawa12@icloud.com> | 2024-04-17 14:23:41 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-17 14:23:41 +0900 |
| commit | e423b8ce4b28ecbe4e300fc67389e4def3761eb6 (patch) | |
| tree | 43d5e15ead542d1f0dad7dc30e0f86dc7e192535 /packages/backend/src/misc | |
| parent | enhance(frontend): フォローするかどうかの確認ダイアログを... (diff) | |
| download | sharkey-e423b8ce4b28ecbe4e300fc67389e4def3761eb6.tar.gz sharkey-e423b8ce4b28ecbe4e300fc67389e4def3761eb6.tar.bz2 sharkey-e423b8ce4b28ecbe4e300fc67389e4def3761eb6.zip | |
細かいミュートの処理の修正 (#13695)
* fix: some replies are removed from global timeline
* refactor: 各チャンネルのミュートとブロックの処理をまとめる
* fix: リノートをミュートでその人のノートのリノートをミュートしていたを修正
* refactor: isPureRenotePackedを他のところでも使う
* docs(changelog): CHANGELOGを更新
* test: withReplies = falseでフォローしてる人によるリプライが流れてくる
* test: ノートミュートしているユーザーの通常ノートのリノートが流れてくる/含まれる
Diffstat (limited to 'packages/backend/src/misc')
| -rw-r--r-- | packages/backend/src/misc/is-renote.ts | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/packages/backend/src/misc/is-renote.ts b/packages/backend/src/misc/is-renote.ts index 5d48aba360..48f821806c 100644 --- a/packages/backend/src/misc/is-renote.ts +++ b/packages/backend/src/misc/is-renote.ts @@ -4,6 +4,7 @@ */ import type { MiNote } from '@/models/Note.js'; +import type { Packed } from '@/misc/json-schema.js'; type Renote = MiNote & { @@ -34,3 +35,33 @@ export function isQuote(note: Renote): note is Quote { note.hasPoll || note.fileIds.length > 0; } + +type PackedRenote = + Packed<'Note'> & { + renoteId: NonNullable<Packed<'Note'>['renoteId']> + }; + +type PackedQuote = + PackedRenote & ({ + text: NonNullable<Packed<'Note'>['text']> + } | { + cw: NonNullable<Packed<'Note'>['cw']> + } | { + replyId: NonNullable<Packed<'Note'>['replyId']> + } | { + poll: NonNullable<Packed<'Note'>['poll']> + } | { + fileIds: NonNullable<Packed<'Note'>['fileIds']> + }); + +export function isRenotePacked(note: Packed<'Note'>): note is PackedRenote { + return note.renoteId != null; +} + +export function isQuotePacked(note: PackedRenote): note is PackedQuote { + return note.text != null || + note.cw != null || + note.replyId != null || + note.poll != null || + (note.fileIds != null && note.fileIds.length > 0); +} |