summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkMediaAudio.vue
diff options
context:
space:
mode:
authorかっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>2024-07-19 09:57:01 +0900
committerGitHub <noreply@github.com>2024-07-19 09:57:01 +0900
commit1f24a8cb5a307c3ff621577189a2a618b9dcfdc4 (patch)
treee66eff1c2833757c2f7286b4b37a34fd6f374171 /packages/frontend/src/components/MkMediaAudio.vue
parentfix(frontend): 個人宛てダイアログお知らせが即時表示され... (diff)
downloadmisskey-1f24a8cb5a307c3ff621577189a2a618b9dcfdc4.tar.gz
misskey-1f24a8cb5a307c3ff621577189a2a618b9dcfdc4.tar.bz2
misskey-1f24a8cb5a307c3ff621577189a2a618b9dcfdc4.zip
enhance(frontend): センシティブなメディアを開く際に確認ダイアログを出せるように (#14115)
* enhance(frontend): センシティブなメディアを開く際に確認ダイアログを出せるように * Update Changelog
Diffstat (limited to 'packages/frontend/src/components/MkMediaAudio.vue')
-rw-r--r--packages/frontend/src/components/MkMediaAudio.vue14
1 files changed, 13 insertions, 1 deletions
diff --git a/packages/frontend/src/components/MkMediaAudio.vue b/packages/frontend/src/components/MkMediaAudio.vue
index 582cf238c0..a080550ddf 100644
--- a/packages/frontend/src/components/MkMediaAudio.vue
+++ b/packages/frontend/src/components/MkMediaAudio.vue
@@ -15,7 +15,7 @@ SPDX-License-Identifier: AGPL-3.0-only
@contextmenu.stop
@keydown.stop
>
- <button v-if="hide" :class="$style.hidden" @click="hide = false">
+ <button v-if="hide" :class="$style.hidden" @click="show">
<div :class="$style.hiddenTextWrapper">
<b v-if="audio.isSensitive" style="display: block;"><i class="ti ti-eye-exclamation"></i> {{ i18n.ts.sensitive }}{{ defaultStore.state.dataSaver.media ? ` (${i18n.ts.audio}${audio.size ? ' ' + bytes(audio.size) : ''})` : '' }}</b>
<b v-else style="display: block;"><i class="ti ti-music"></i> {{ defaultStore.state.dataSaver.media && audio.size ? bytes(audio.size) : i18n.ts.audio }}</b>
@@ -156,6 +156,18 @@ const audioEl = shallowRef<HTMLAudioElement>();
// eslint-disable-next-line vue/no-setup-props-reactivity-loss
const hide = ref((defaultStore.state.nsfw === 'force' || defaultStore.state.dataSaver.media) ? true : (props.audio.isSensitive && defaultStore.state.nsfw !== 'ignore'));
+async function show() {
+ if (props.audio.isSensitive && defaultStore.state.confirmWhenRevealingSensitiveMedia) {
+ const { canceled } = await os.confirm({
+ type: 'question',
+ text: i18n.ts.sensitiveMediaRevealConfirm,
+ });
+ if (canceled) return;
+ }
+
+ hide.value = false;
+}
+
// Menu
const menuShowing = ref(false);