1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-05-19 18:15:47 +02:00

fix(frontend): ファイルタブのセンシティブメディアを開く際に確認ダイアログを出す設定が適用されない問題を修正 (#17019)

* fix(frontend): ファイルタブのセンシティブメディアを開く際に確認ダイアログを出す設定が適用されない問題を修正

* Update Changelog

* refactor

* Update Changelog
This commit is contained in:
かっこかり
2026-01-02 21:41:32 +09:00
committed by GitHub
parent a1ba403f9a
commit 9c22538454
7 changed files with 73 additions and 40 deletions

View File

@@ -6,14 +6,9 @@ SPDX-License-Identifier: AGPL-3.0-only
<template>
<template v-for="file in note.files">
<div
v-if="(((
(prefer.s.nsfw === 'force' || file.isSensitive) &&
prefer.s.nsfw !== 'ignore'
) || (prefer.s.dataSaver.media && file.type.startsWith('image/'))) &&
!showingFiles.has(file.id)
)"
v-if="isHiding(file)"
:class="[$style.filePreview, { [$style.square]: square }]"
@click="showingFiles.add(file.id)"
@click="reveal(file)"
>
<MkDriveFileThumbnail
:file="file"
@@ -49,6 +44,7 @@ import * as Misskey from 'misskey-js';
import { notePage } from '@/filters/note.js';
import { i18n } from '@/i18n.js';
import { prefer } from '@/preferences.js';
import { shouldHideFileByDefault, canRevealFile } from '@/utility/sensitive-file.js';
import bytes from '@/filters/bytes.js';
import MkDriveFileThumbnail from '@/components/MkDriveFileThumbnail.vue';
@@ -59,6 +55,24 @@ defineProps<{
}>();
const showingFiles = ref<Set<string>>(new Set());
function isHiding(file: Misskey.entities.DriveFile) {
if (shouldHideFileByDefault(file) && !showingFiles.value.has(file.id)) {
if (!file.isSensitive && !file.type.startsWith('image/')) {
return false;
}
return true;
}
return false;
}
async function reveal(file: Misskey.entities.DriveFile) {
if (!(await canRevealFile(file))) {
return;
}
showingFiles.value.add(file.id);
}
</script>
<style lang="scss" module>