mirror of
https://github.com/VueTorrent/VueTorrent.git
synced 2025-04-10 18:55:30 +03:00
47 lines
1.3 KiB
Vue
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>
|