diff options
| author | かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> | 2024-07-19 09:57:01 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-19 09:57:01 +0900 |
| commit | 1f24a8cb5a307c3ff621577189a2a618b9dcfdc4 (patch) | |
| tree | e66eff1c2833757c2f7286b4b37a34fd6f374171 /packages/frontend/src/components/MkMediaAudio.vue | |
| parent | fix(frontend): 個人宛てダイアログお知らせが即時表示され... (diff) | |
| download | misskey-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.vue | 14 |
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); |