iceshrimp-legacy/src/client/app/common/views/components/media-banner.vue

99 lines
1.8 KiB
Vue
Raw Normal View History

2018-09-04 18:08:18 +02:00
<template>
<div class="mk-media-banner">
<div class="sensitive" v-if="media.isSensitive && hide" @click="hide = false">
<span class="icon"><fa icon="exclamation-triangle"/></span>
<b>{{ $t('sensitive') }}</b>
<span>{{ $t('click-to-show') }}</span>
2018-09-04 18:08:18 +02:00
</div>
2019-02-16 17:09:49 +01:00
<div class="audio" v-else-if="media.type.startsWith('audio') && media.type !== 'audio/midi'">
2018-09-04 18:08:18 +02:00
<audio class="audio"
:src="media.url"
:title="media.name"
controls
ref="audio"
@volumechange="volumechange"
2018-09-04 18:08:18 +02:00
preload="metadata" />
</div>
<a class="download" v-else
2018-09-04 18:08:18 +02:00
:href="media.url"
:title="media.name"
:download="media.name"
>
<span class="icon"><fa icon="download"/></span>
2018-09-04 18:08:18 +02:00
<b>{{ media.name }}</b>
</a>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import i18n from '../../../i18n';
2018-09-04 18:08:18 +02:00
export default Vue.extend({
i18n: i18n('common/views/components/media-banner.vue'),
2018-09-04 18:08:18 +02:00
props: {
media: {
type: Object,
required: true
}
2018-09-15 21:31:55 +02:00
},
data() {
return {
hide: true
};
},
mounted() {
const audioTag = this.$refs.audio as HTMLAudioElement;
if (audioTag) audioTag.volume = this.$store.state.device.mediaVolume;
},
methods: {
volumechange() {
const audioTag = this.$refs.audio as HTMLAudioElement;
this.$store.commit('device/set', { key: 'mediaVolume', value: audioTag.volume });
},
},
2018-09-04 18:08:18 +02:00
})
</script>
<style lang="stylus" scoped>
2018-09-28 03:14:58 +02:00
.mk-media-banner
2018-09-04 18:08:18 +02:00
width 100%
border-radius 4px
margin-top 4px
overflow hidden
> .download,
> .sensitive
2018-09-04 18:08:18 +02:00
display flex
align-items center
font-size 12px
padding 8px 12px
2018-09-04 18:08:18 +02:00
white-space nowrap
> *
display block
> b
overflow hidden
text-overflow ellipsis
> *:not(:last-child)
margin-right .2em
> .icon
2018-09-04 18:08:18 +02:00
font-size 1.6em
> .download
2018-09-28 03:14:58 +02:00
background var(--noteAttachedFile)
2018-09-04 18:08:18 +02:00
> .sensitive
2018-09-04 18:08:18 +02:00
background #111
color #fff
> .audio
2018-09-04 18:08:18 +02:00
.audio
display block
width 100%
2018-09-05 12:46:55 +02:00
2018-09-04 18:08:18 +02:00
</style>