koel/resources/assets/js/components/song/SongLikeButton.vue

23 lines
773 B
Vue
Raw Normal View History

2022-04-15 16:24:30 +02:00
<template>
2024-04-05 00:20:42 +02:00
<FooterExtraControlBtn :title="title" @click.stop="toggleLike">
<Icon v-if="playable.liked" :icon="faHeart" />
2023-11-10 14:16:06 +01:00
<Icon v-else :icon="faEmptyHeart" />
2024-04-05 00:20:42 +02:00
</FooterExtraControlBtn>
2022-04-15 16:24:30 +02:00
</template>
2022-04-15 19:00:08 +02:00
<script lang="ts" setup>
2022-07-15 09:23:55 +02:00
import { faHeart } from '@fortawesome/free-solid-svg-icons'
import { faHeart as faEmptyHeart } from '@fortawesome/free-regular-svg-icons'
2022-04-15 19:00:08 +02:00
import { computed, toRefs } from 'vue'
2022-04-15 16:24:30 +02:00
import { favoriteStore } from '@/stores'
2024-05-19 13:49:42 +08:00
2024-04-05 00:20:42 +02:00
import FooterExtraControlBtn from '@/components/layout/app-footer/FooterButton.vue'
2022-04-15 16:24:30 +02:00
const props = defineProps<{ playable: Playable }>()
const { playable } = toRefs(props)
2022-04-15 16:24:30 +02:00
const title = computed(() => playable.value.liked ? 'Unlike' : 'Like')
2022-04-15 16:24:30 +02:00
const toggleLike = () => favoriteStore.toggleOne(playable.value)
2022-04-15 16:24:30 +02:00
</script>