yumechi-no-kuni/src/client/app/common/views/components/media-banner.vue

90 lines
1.4 KiB
Vue
Raw Normal View History

2018-09-04 11:08:18 -05:00
<template>
<div class="mk-media-banner">
<div class="sensitive" v-if="media.isSensitive && hide" @click="hide = false">
<span class="icon">%fa:exclamation-triangle%</span>
2018-09-04 11:08:18 -05:00
<b>%i18n:@sensitive%</b>
<span>%i18n:@click-to-show%</span>
</div>
<div class="audio" v-else-if="media.type.startsWith('audio')">
2018-09-04 11:08:18 -05:00
<audio class="audio"
:src="media.url"
:title="media.name"
controls
ref="audio"
preload="metadata" />
</div>
<a class="download" v-else
2018-09-04 11:08:18 -05:00
:href="media.url"
:title="media.name"
:download="media.name"
>
<span class="icon">%fa:download%</span>
2018-09-04 11:08:18 -05:00
<b>{{ media.name }}</b>
</a>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
export default Vue.extend({
props: {
media: {
type: Object,
required: true
},
hide: {
type: Boolean,
default: true
}
}
})
</script>
<style lang="stylus" scoped>
2018-09-05 05:46:55 -05:00
root(isDark)
2018-09-04 11:08:18 -05:00
width 100%
border-radius 4px
margin-top 4px
overflow hidden
> .download,
> .sensitive
2018-09-04 11:08:18 -05:00
display flex
align-items center
font-size 12px
padding 8px 12px
2018-09-04 11:08:18 -05:00
white-space nowrap
> *
display block
> b
overflow hidden
text-overflow ellipsis
> *:not(:last-child)
margin-right .2em
> .icon
2018-09-04 11:08:18 -05:00
font-size 1.6em
> .download
2018-09-05 05:46:55 -05:00
background isDark ? #21242d : #f7f7f7
2018-09-04 11:08:18 -05:00
> .sensitive
2018-09-04 11:08:18 -05:00
background #111
color #fff
> .audio
2018-09-04 11:08:18 -05:00
.audio
display block
width 100%
2018-09-05 05:46:55 -05:00
.mk-media-banner[data-darkmode]
root(true)
.mk-media-banner:not([data-darkmode])
root(false)
2018-09-04 11:08:18 -05:00
</style>