file types and exports

This commit is contained in:
N-Pex 2023-12-04 11:29:23 +01:00
parent db04080463
commit 324ccd70b3
21 changed files with 339 additions and 55 deletions

View file

@ -1,19 +1,22 @@
<template>
<v-responsive v-if="item.event.getContent().msgtype == 'm.video'" :class="{'thumbnail-item': true, 'preview': previewOnly}"
<v-responsive v-if="item.event.getContent().msgtype == 'm.video' && item.src" :class="{'thumbnail-item': true, 'preview': previewOnly}"
@click.stop="$emit('itemclick', {item: item})">
<video :src="item.src" :controls="!previewOnly" class="w-100 h-100">
{{ $t('fallbacks.video_file') }}
</video>
</v-responsive>
<v-img v-else-if="item.event.getContent().msgtype == 'm.image'" :aspect-ratio="previewOnly ? (16 / 9) : undefined" :class="{'thumbnail-item': true, 'preview': previewOnly}" :src="item.src" :contain="!previewOnly" :cover="previewOnly"
<v-img v-else-if="item.event.getContent().msgtype == 'm.image' && item.src" :aspect-ratio="previewOnly ? (16 / 9) : undefined" :class="{'thumbnail-item': true, 'preview': previewOnly}" :src="item.src" :contain="!previewOnly" :cover="previewOnly"
@click.stop="$emit('itemclick', {item: item})" />
<div v-else :class="{'thumbnail-item': true, 'preview': previewOnly, 'file-item': true}" @click.stop="$emit('itemclick', {item: item})">
<v-icon>description</v-icon>
{{ $sanitize(item.event.getContent().body) }}
<v-icon>{{ fileTypeIcon }}</v-icon>
<b>{{ $sanitize(fileName) }}</b>
<div>{{ fileSize }}</div>
</div>
</template>
<script>
import util from "../../plugins/utils";
export default {
props: {
/**
@ -32,6 +35,26 @@ export default {
}
},
},
computed: {
fileTypeIcon() {
if (util.isFileTypeAPK(this.item.event)) {
return "phone_android";
} else if (util.isFileTypeIPA(this.item.event)) {
return "phone_iphone";
} else if (util.isFileTypePDF(this.item.event)) {
return "picture_as_pdf";
} else if (util.isFileTypeZip(this.item.event)) {
return "folder_zip";
}
return "description"
},
fileName() {
return util.getFileName(this.item.event);
},
fileSize() {
return util.getFileSizeFormatted(this.item.event);
}
}
}
</script>