thelounge/client/components/LinkPreviewFileSize.vue
2019-11-25 20:13:12 +02:00

35 lines
577 B
Vue

<template>
<span class="preview-size">({{ previewSize }})</span>
</template>
<script>
import constants from "../js/constants";
export default {
name: "LinkPreviewFileSize",
props: {
size: Number,
},
computed: {
previewSize() {
let size = this.size;
// Threshold for SI units
const thresh = 1024;
let u = 0;
do {
size /= thresh;
++u;
} while (size >= thresh && u < constants.sizeUnits.length - 1);
const displaySize = size.toFixed(1);
const unit = constants.sizeUnits[u];
return `${displaySize} ${unit}`;
},
},
};
</script>