mirror of
https://github.com/danbulant/Nertivia-Client
synced 2026-06-14 03:51:04 +00:00
99 lines
1.9 KiB
Vue
99 lines
1.9 KiB
Vue
<template>
|
|
<div class="uploads-queue">
|
|
<div
|
|
v-for="(upload, index) in $props.queue"
|
|
:key="index"
|
|
class="upload"
|
|
>
|
|
<div class="icon">
|
|
<i class="material-icons">insert_drive_file</i>
|
|
</div>
|
|
<div class="information">
|
|
<div class="info"> {{ upload.name }} </div>
|
|
<div class="info size"> {{ upload.size }} </div>
|
|
<div class="progress">
|
|
<div class="progress-bar">
|
|
<div
|
|
class="progress-bar-inner"
|
|
:style="{width: `${upload.percent}%`}"
|
|
/>
|
|
</div>
|
|
<div class="percent">
|
|
{{ upload.percent }}%
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
props: ["queue"]
|
|
};
|
|
</script>
|
|
|
|
<style scoped>
|
|
.uploads-queue {
|
|
display: inline-block;
|
|
}
|
|
.upload {
|
|
color: white;
|
|
background: rgba(0, 0, 0, 0.513);
|
|
margin: 10px;
|
|
margin-left: 70px;
|
|
display: flex;
|
|
padding: 10px;
|
|
border-radius: 10px;
|
|
}
|
|
.icon .material-icons {
|
|
font-size: 40px;
|
|
}
|
|
.info {
|
|
word-wrap: break-word;
|
|
word-break: break-word;
|
|
white-space: pre-wrap;
|
|
font-size: 14px;
|
|
overflow: hidden;
|
|
max-width: 100%;
|
|
color: white;
|
|
overflow-wrap: anywhere;
|
|
margin-top: 3px;
|
|
}
|
|
.size {
|
|
font-size: 15px;
|
|
color: grey;
|
|
}
|
|
.progress {
|
|
display: flex;
|
|
align-content: center;
|
|
align-items: center;
|
|
}
|
|
.progress-bar {
|
|
width: 100px;
|
|
height: 10px;
|
|
background: rgba(0, 0, 0, 0.513);
|
|
margin-right: 10px;
|
|
}
|
|
.progress-bar-inner {
|
|
height: 10px;
|
|
background: rgb(255, 255, 255);
|
|
animation: dimProgress;
|
|
animation-duration: 2s;
|
|
animation-iteration-count: infinite;
|
|
animation-direction: normal;
|
|
animation-fill-mode: forwards;
|
|
}
|
|
@keyframes dimProgress {
|
|
0% {
|
|
background: rgb(255, 255, 255);
|
|
}
|
|
50% {
|
|
background: rgba(253, 253, 253, 0.705);
|
|
}
|
|
100% {
|
|
background: rgb(255, 255, 255);
|
|
}
|
|
}
|
|
</style>
|
|
|