diff options
| author | かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> | 2026-01-02 21:41:32 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-02 21:41:32 +0900 |
| commit | 9c225384541192bbd83da94ac2f6c09ade3a25e8 (patch) | |
| tree | b93b31accb31ce101a565b944f0c47e1c3f41261 /packages/frontend/src/components/MkNoteMediaGrid.vue | |
| parent | fix(frontend): ログインダイアログが表示されたあとの処理... (diff) | |
| download | misskey-9c225384541192bbd83da94ac2f6c09ade3a25e8.tar.gz misskey-9c225384541192bbd83da94ac2f6c09ade3a25e8.tar.bz2 misskey-9c225384541192bbd83da94ac2f6c09ade3a25e8.zip | |
fix(frontend): ファイルタブのセンシティブメディアを開く際に確認ダイアログを出す設定が適用されない問題を修正 (#17019)
* fix(frontend): ファイルタブのセンシティブメディアを開く際に確認ダイアログを出す設定が適用されない問題を修正
* Update Changelog
* refactor
* Update Changelog
Diffstat (limited to 'packages/frontend/src/components/MkNoteMediaGrid.vue')
| -rw-r--r-- | packages/frontend/src/components/MkNoteMediaGrid.vue | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/packages/frontend/src/components/MkNoteMediaGrid.vue b/packages/frontend/src/components/MkNoteMediaGrid.vue index 7e900b28fa..e46456d614 100644 --- a/packages/frontend/src/components/MkNoteMediaGrid.vue +++ b/packages/frontend/src/components/MkNoteMediaGrid.vue @@ -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> |