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:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user