diff options
| author | かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> | 2023-09-06 17:36:14 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-06 17:36:14 +0900 |
| commit | 22d966e92dabffba23178a4afb5853882ba7249e (patch) | |
| tree | 7971b4ec56d7b272a13b9b19d6b6f87de42a3eae /packages/frontend/src/components/MkMediaImage.vue | |
| parent | feat(backend): Webhook設定でsecretを空に出来るように (#11784) (diff) | |
| download | sharkey-22d966e92dabffba23178a4afb5853882ba7249e.tar.gz sharkey-22d966e92dabffba23178a4afb5853882ba7249e.tar.bz2 sharkey-22d966e92dabffba23178a4afb5853882ba7249e.zip | |
enhance(frontend): データセーバーモードで隠れる画像を増やす等 (#11779)
* enhance datasaver mode
* サムネイルがないとき変な角丸にならんようにする
* Avoid using wildcard selector
* Avoid wildcard
* Update MkMediaImage.vue
---------
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
Diffstat (limited to 'packages/frontend/src/components/MkMediaImage.vue')
| -rw-r--r-- | packages/frontend/src/components/MkMediaImage.vue | 40 |
1 files changed, 28 insertions, 12 deletions
diff --git a/packages/frontend/src/components/MkMediaImage.vue b/packages/frontend/src/components/MkMediaImage.vue index edfd6a72e8..fbdf8777cc 100644 --- a/packages/frontend/src/components/MkMediaImage.vue +++ b/packages/frontend/src/components/MkMediaImage.vue @@ -4,34 +4,41 @@ SPDX-License-Identifier: AGPL-3.0-only --> <template> -<div :class="hide ? $style.hidden : $style.visible" :style="darkMode ? '--c: rgb(255 255 255 / 2%);' : '--c: rgb(0 0 0 / 2%);'" @click="onclick"> - <a - :class="$style.imageContainer" - :href="image.url" - :title="image.name" +<div :class="hide ? $style.hidden : $style.visible" :style="darkMode ? '--c: rgb(255 255 255 / 2%);' : '--c: rgb(0 0 0 / 2%);'" @click.stop="onclick"> + <component + :is="disableImageLink ? 'div' : 'a'" + v-bind="disableImageLink ? { + title: image.name, + class: $style.imageContainer, + } : { + title: image.name, + class: $style.imageContainer, + href: image.url, + style: 'cursor: zoom-in;' + }" > <ImgWithBlurhash :hash="image.blurhash" :src="(defaultStore.state.enableDataSaverMode && hide) ? null : url" :forceBlurhash="hide" - :cover="hide" + :cover="hide || cover" :alt="image.comment || image.name" :title="image.comment || image.name" :width="image.properties.width" :height="image.properties.height" :style="hide ? 'filter: brightness(0.5);' : null" /> - </a> + </component> <template v-if="hide"> <div :class="$style.hiddenText"> <div :class="$style.hiddenTextWrapper"> <b v-if="image.isSensitive" style="display: block;"><i class="ti ti-eye-exclamation"></i> {{ i18n.ts.sensitive }}{{ defaultStore.state.enableDataSaverMode ? ` (${i18n.ts.image}${image.size ? ' ' + bytes(image.size) : ''})` : '' }}</b> <b v-else style="display: block;"><i class="ti ti-photo"></i> {{ defaultStore.state.enableDataSaverMode && image.size ? bytes(image.size) : i18n.ts.image }}</b> - <span style="display: block;">{{ i18n.ts.clickToShow }}</span> + <span v-if="controls" style="display: block;">{{ i18n.ts.clickToShow }}</span> </div> </div> </template> - <template v-else> + <template v-else-if="controls"> <div :class="$style.indicators"> <div v-if="['image/gif', 'image/apng'].includes(image.type)" :class="$style.indicator">GIF</div> <div v-if="image.comment" :class="$style.indicator">ALT</div> @@ -54,10 +61,17 @@ import { i18n } from '@/i18n'; import * as os from '@/os'; import { iAmModerator } from '@/account'; -const props = defineProps<{ +const props = withDefaults(defineProps<{ image: Misskey.entities.DriveFile; raw?: boolean; -}>(); + cover?: boolean; + disableImageLink?: boolean; + controls?: boolean; +}>(), { + cover: false, + disableImageLink: false, + controls: true, +}); let hide = $ref(true); let darkMode: boolean = $ref(defaultStore.state.darkMode); @@ -70,6 +84,9 @@ const url = $computed(() => (props.raw || defaultStore.state.loadRawImages) ); function onclick() { + if (!props.controls) { + return; + } if (hide) { hide = false; } @@ -167,7 +184,6 @@ function showMenu(ev: MouseEvent) { .imageContainer { display: block; - cursor: zoom-in; overflow: hidden; width: 100%; height: 100%; |