diff --git a/src/client/components/media-image.vue b/src/client/components/media-image.vue index 79b5150b11eacc2a017bef32d1992649fe83bb37..bd53f824225caa008b2c4c7f870872d41dbc00b4 100644 --- a/src/client/components/media-image.vue +++ b/src/client/components/media-image.vue @@ -5,19 +5,22 @@ <span>{{ $t('clickToShow') }}</span> </div> </div> -<a class="gqnyydlzavusgskkfvwvjiattxdzsqlf" v-else - :href="image.url" - :style="style" - :title="image.name" - @click.prevent="onClick" -> - <div v-if="image.type === 'image/gif'">GIF</div> -</a> +<div class="gqnyydlzavusgskkfvwvjiattxdzsqlf" v-else> + <i><fa :icon="faEyeSlash" @click="hide = true"></fa></i> + <a + :href="image.url" + :style="style" + :title="image.name" + @click.prevent="onClick" + > + <div v-if="image.type === 'image/gif'">GIF</div> + </a> +</div> </template> <script lang="ts"> import Vue from 'vue'; -import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; +import { faExclamationTriangle, faEyeSlash } from '@fortawesome/free-solid-svg-icons'; import i18n from '../i18n'; import { getStaticImageUrl } from '../scripts/get-static-image-url'; import ImageViewer from './image-viewer.vue'; @@ -36,7 +39,8 @@ export default Vue.extend({ data() { return { hide: true, - faExclamationTriangle + faExclamationTriangle, + faEyeSlash }; }, computed: { @@ -78,28 +82,47 @@ export default Vue.extend({ <style lang="scss" scoped> .gqnyydlzavusgskkfvwvjiattxdzsqlf { - display: block; - cursor: zoom-in; - overflow: hidden; - width: 100%; - height: 100%; - background-position: center; - background-size: contain; - background-repeat: no-repeat; + position: relative; - > div { - background-color: var(--fg); + > i { + display: block; + position: absolute; border-radius: 6px; + background-color: var(--fg); color: var(--accentLighten); - display: inline-block; font-size: 14px; - font-weight: bold; - left: 12px; opacity: .5; - padding: 0 6px; + padding: 3px 6px; text-align: center; + cursor: pointer; top: 12px; - pointer-events: none; + right: 12px; + } + + > a { + display: block; + cursor: zoom-in; + overflow: hidden; + width: 100%; + height: 100%; + background-position: center; + background-size: contain; + background-repeat: no-repeat; + + > div { + background-color: var(--fg); + border-radius: 6px; + color: var(--accentLighten); + display: inline-block; + font-size: 14px; + font-weight: bold; + left: 12px; + opacity: .5; + padding: 0 6px; + text-align: center; + top: 12px; + pointer-events: none; + } } } diff --git a/src/client/components/media-video.vue b/src/client/components/media-video.vue index f96e90297603705ff4f61a9771a5dfef8acf737d..4327d07093d4c873969fa6737545828c40259546 100644 --- a/src/client/components/media-video.vue +++ b/src/client/components/media-video.vue @@ -5,20 +5,23 @@ <span>{{ $t('clickToShow') }}</span> </div> </div> -<a class="kkjnbbplepmiyuadieoenjgutgcmtsvu" v-else - :href="video.url" - rel="nofollow noopener" - target="_blank" - :style="imageStyle" - :title="video.name" -> - <fa :icon="faPlayCircle"/> -</a> +<div class="kkjnbbplepmiyuadieoenjgutgcmtsvu" v-else> + <i><fa :icon="faEyeSlash" @click="hide = true"></fa></i> + <a + :href="video.url" + rel="nofollow noopener" + target="_blank" + :style="imageStyle" + :title="video.name" + > + <fa :icon="faPlayCircle"/> + </a> +</div> </template> <script lang="ts"> import Vue from 'vue'; -import { faPlayCircle } from '@fortawesome/free-regular-svg-icons'; +import { faPlayCircle, faEyeSlash } from '@fortawesome/free-regular-svg-icons'; import i18n from '../i18n'; export default Vue.extend({ @@ -32,7 +35,8 @@ export default Vue.extend({ data() { return { hide: true, - faPlayCircle + faPlayCircle, + faEyeSlash }; }, computed: { @@ -47,16 +51,35 @@ export default Vue.extend({ <style lang="scss" scoped> .kkjnbbplepmiyuadieoenjgutgcmtsvu { - display: flex; - justify-content: center; - align-items: center; + position: relative; - font-size: 3.5em; - overflow: hidden; - background-position: center; - background-size: cover; - width: 100%; - height: 100%; + > i { + display: block; + position: absolute; + border-radius: 6px; + background-color: var(--fg); + color: var(--accentLighten); + font-size: 14px; + opacity: .5; + padding: 3px 6px; + text-align: center; + cursor: pointer; + top: 12px; + right: 12px; + } + + > a { + display: flex; + justify-content: center; + align-items: center; + + font-size: 3.5em; + overflow: hidden; + background-position: center; + background-size: cover; + width: 100%; + height: 100%; + } } .icozogqfvdetwohsdglrbswgrejoxbdj {