1
0
Fork 0
mirror of https://github.com/VueTorrent/VueTorrent.git synced 2025-04-10 18:55:30 +03:00
VueTorrent/src/components/Core/SpeedCard.vue
2023-07-20 13:50:46 +02:00

47 lines
1.3 KiB
Vue

<template>
<v-card v-ripple flat rounded="md" color="secondary" class="speedCard" data-testid="SpeedCard" @click="open">
<v-layout row align-center :class="color + '--text'">
<v-flex v-if="icon" xs2 class="pl-1">
<v-icon data-testid="SpeedCard-icon" :color="color" size="20px">
{{ icon }}
</v-icon>
</v-flex>
<v-layout column xs10>
<v-flex class="text-center font-weight-bold robot-mono">
<span data-testid="SpeedCard-value">{{ value | formatSpeedValue(shouldUseBitSpeed()) }}</span>
</v-flex>
<v-flex class="caption robot-mono text-center mt-n1">
<span data-testid="SpeedCard-unit">{{ value | formatSpeedUnit(shouldUseBitSpeed()) }}</span>
</v-flex>
</v-layout>
</v-layout>
</v-card>
</template>
<script lang="ts">
import { defineComponent } from 'vue'
import { mapGetters } from 'vuex'
import { General } from '@/mixins'
export default defineComponent({
name: 'SpeedCard',
mixins: [General],
props: ['color', 'icon', 'value'],
computed: {
...mapGetters(['shouldUseBitSpeed'])
},
methods: {
open() {
this.createModal('SpeedLimitModal', { mode: this.color })
}
}
})
</script>
<style scoped>
.speedCard {
padding: 20px 20px !important;
font-size: 1.1em;
cursor: pointer;
}
</style>