owntone-server/web-src/src/components/PlayerButtonRepeat.vue

56 lines
1.1 KiB
Vue
Raw Normal View History

<template>
<a :class="{ 'is-info': !is_repeat_off }" @click="toggle_repeat_mode">
<mdicon
class="icon"
:name="icon_name"
:size="icon_size"
2024-03-26 03:34:50 +01:00
:title="$t(`player.button.${icon_name}`)"
/>
</a>
</template>
<script>
import webapi from '@/webapi'
export default {
name: 'PlayerButtonRepeat',
props: {
2024-02-28 15:25:36 +01:00
icon_size: { default: 16, type: Number }
},
computed: {
icon_name() {
if (this.is_repeat_all) {
return 'repeat'
} else if (this.is_repeat_single) {
return 'repeat-once'
}
return 'repeat-off'
2024-03-26 15:00:17 +01:00
},
is_repeat_all() {
return this.$store.state.player.repeat === 'all'
},
is_repeat_off() {
return !this.is_repeat_all && !this.is_repeat_single
},
is_repeat_single() {
return this.$store.state.player.repeat === 'single'
}
},
methods: {
toggle_repeat_mode() {
if (this.is_repeat_all) {
webapi.player_repeat('single')
} else if (this.is_repeat_single) {
webapi.player_repeat('off')
} else {
webapi.player_repeat('all')
}
}
}
}
</script>
<style></style>