refactor(frontend): checkWordMuteの返り値が誤っている問題を修正 (#16188)

* refactor(frontend): checkWordMuteの返り値が誤っている問題を修正

* fix lint
This commit is contained in:
かっこかり 2025-06-14 16:08:14 +09:00 committed by GitHub
parent 8ea6aa2ef3
commit 32d721abf1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 18 additions and 10 deletions

View File

@ -321,20 +321,27 @@ const pleaseLoginContext = computed<OpenOnRemoteOptions>(() => ({
url: `https://${host}/notes/${appearNote.id}`, url: `https://${host}/notes/${appearNote.id}`,
})); }));
/* Overload FunctionLint /* eslint-disable no-redeclare */
/** checkOnlyでは純粋なワードミュート結果をbooleanで返却する */
function checkMute(noteToCheck: Misskey.entities.Note, mutedWords: Array<string | string[]> | undefined | null, checkOnly: true): boolean; function checkMute(noteToCheck: Misskey.entities.Note, mutedWords: Array<string | string[]> | undefined | null, checkOnly: true): boolean;
function checkMute(noteToCheck: Misskey.entities.Note, mutedWords: Array<string | string[]> | undefined | null, checkOnly: false): Array<string | string[]> | false | 'sensitiveMute'; function checkMute(noteToCheck: Misskey.entities.Note, mutedWords: Array<string | string[]> | undefined | null, checkOnly?: false): Array<string | string[]> | false | 'sensitiveMute';
*/
function checkMute(noteToCheck: Misskey.entities.Note, mutedWords: Array<string | string[]> | undefined | null, checkOnly = false): Array<string | string[]> | false | 'sensitiveMute' { function checkMute(noteToCheck: Misskey.entities.Note, mutedWords: Array<string | string[]> | undefined | null, checkOnly = false): Array<string | string[]> | boolean | 'sensitiveMute' {
if (mutedWords != null) { if (mutedWords != null) {
const result = checkWordMute(noteToCheck, $i, mutedWords); const result = checkWordMute(noteToCheck, $i, mutedWords);
if (Array.isArray(result)) return result; if (Array.isArray(result)) {
return checkOnly ? (result.length > 0) : result;
}
const replyResult = noteToCheck.reply && checkWordMute(noteToCheck.reply, $i, mutedWords); const replyResult = noteToCheck.reply && checkWordMute(noteToCheck.reply, $i, mutedWords);
if (Array.isArray(replyResult)) return replyResult; if (Array.isArray(replyResult)) {
return checkOnly ? (replyResult.length > 0) : replyResult;
}
const renoteResult = noteToCheck.renote && checkWordMute(noteToCheck.renote, $i, mutedWords); const renoteResult = noteToCheck.renote && checkWordMute(noteToCheck.renote, $i, mutedWords);
if (Array.isArray(renoteResult)) return renoteResult; if (Array.isArray(renoteResult)) {
return checkOnly ? (renoteResult.length > 0) : renoteResult;
}
} }
if (checkOnly) return false; if (checkOnly) return false;
@ -345,6 +352,7 @@ function checkMute(noteToCheck: Misskey.entities.Note, mutedWords: Array<string
return false; return false;
} }
/* eslint-enable no-redeclare */
const keymap = { const keymap = {
'r': () => { 'r': () => {
@ -417,7 +425,7 @@ if (!props.mock) {
const users = renotes.map(x => x.user); const users = renotes.map(x => x.user);
if (users.length < 1) return; if (users.length < 1 || renoteButton.value == null) return;
const { dispose } = os.popup(MkUsersTooltip, { const { dispose } = os.popup(MkUsersTooltip, {
showing, showing,

View File

@ -428,7 +428,7 @@ defineExpose({
background: var(--MI_THEME-panel); background: var(--MI_THEME-panel);
} }
.note { .note:not(:empty) {
border-bottom: solid 0.5px var(--MI_THEME-divider); border-bottom: solid 0.5px var(--MI_THEME-divider);
} }

View File

@ -542,7 +542,7 @@ function smallerVisibility(a: Visibility, b: Visibility): Visibility {
export function getRenoteMenu(props: { export function getRenoteMenu(props: {
note: Misskey.entities.Note; note: Misskey.entities.Note;
renoteButton: ShallowRef<HTMLElement | undefined>; renoteButton: ShallowRef<HTMLElement | null | undefined>;
mock?: boolean; mock?: boolean;
}) { }) {
const appearNote = getAppearNote(props.note); const appearNote = getAppearNote(props.note);