summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkMediaVideo.vue
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src/components/MkMediaVideo.vue')
-rw-r--r--packages/frontend/src/components/MkMediaVideo.vue32
1 files changed, 23 insertions, 9 deletions
diff --git a/packages/frontend/src/components/MkMediaVideo.vue b/packages/frontend/src/components/MkMediaVideo.vue
index b0f7a909d3..4d06e42c05 100644
--- a/packages/frontend/src/components/MkMediaVideo.vue
+++ b/packages/frontend/src/components/MkMediaVideo.vue
@@ -124,6 +124,7 @@ import hasAudio from '@/utility/media-has-audio.js';
import MkMediaRange from '@/components/MkMediaRange.vue';
import { $i, iAmModerator } from '@/i.js';
import { prefer } from '@/preferences.js';
+import { shouldHideFileByDefault, canRevealFile } from '@/utility/sensitive-file.js';
const props = defineProps<{
video: Misskey.entities.DriveFile;
@@ -176,15 +177,11 @@ function hasFocus() {
}
// eslint-disable-next-line vue/no-setup-props-reactivity-loss
-const hide = ref((prefer.s.nsfw === 'force' || prefer.s.dataSaver.media) ? true : (props.video.isSensitive && prefer.s.nsfw !== 'ignore'));
+const hide = ref(shouldHideFileByDefault(props.video));
async function reveal() {
- if (props.video.isSensitive && prefer.s.confirmWhenRevealingSensitiveMedia) {
- const { canceled } = await os.confirm({
- type: 'question',
- text: i18n.ts.sensitiveMediaRevealConfirm,
- });
- if (canceled) return;
+ if (!(await canRevealFile(props.video))) {
+ return;
}
hide.value = false;
@@ -193,7 +190,7 @@ async function reveal() {
// Menu
const menuShowing = ref(false);
-function showMenu(ev: MouseEvent) {
+function showMenu(ev: PointerEvent) {
const menu: MenuItem[] = [
// TODO: 再生キューに追加
{
@@ -708,7 +705,7 @@ onDeactivated(() => {
.controlButton {
padding: 6px;
border-radius: calc(var(--MI-radius) / 2);
- transition: background-color .2s ease-in-out;
+ transition: background-color .15s ease;
font-size: 1.05rem;
&:hover {
@@ -763,4 +760,21 @@ onDeactivated(() => {
}
}
}
+
+@container (max-width: 300px) {
+ .videoControls {
+ grid-template-areas:
+ "left . right"
+ "seekbar seekbar seekbar";
+ grid-template-columns: auto 1fr auto;
+ }
+
+ .controlsTime {
+ display: none;
+ }
+
+ .controlsVolume {
+ display: none;
+ }
+}
</style>