diff --git a/src/components/AlbumView/Header.vue b/src/components/AlbumView/Header.vue
index 768e1fe..e66eb7e 100644
--- a/src/components/AlbumView/Header.vue
+++ b/src/components/AlbumView/Header.vue
@@ -92,7 +92,7 @@ import HeartSvg from "../shared/HeartSvg.vue";
import PlayBtnRect from "../shared/PlayBtnRect.vue";
-const props = defineProps<{
+defineProps<{
album: Album;
}>();
diff --git a/src/components/ArtistView/Header.vue b/src/components/ArtistView/Header.vue
index 03c0a58..cc90001 100644
--- a/src/components/ArtistView/Header.vue
+++ b/src/components/ArtistView/Header.vue
@@ -31,7 +31,7 @@
@@ -56,10 +56,34 @@ import PlayBtnRect from "../shared/PlayBtnRect.vue";
import formatSeconds from "@/utils/useFormatSeconds";
import { isLight } from "@/composables/colors/album";
import { paths } from "@/config";
-import { playSources } from "@/composables/enums";
+import { favType, playSources } from "@/composables/enums";
import HeartSvg from "@/components/shared/HeartSvg.vue";
+import { ref } from "vue";
+import { addFavorite, removeFavorite } from "@/composables/fetch/favorite";
const artist = useArtistPageStore();
+const is_fav = ref(artist.info.is_favorite);
+
+async function handleFav() {
+ if (is_fav.value) {
+ const removed = await removeFavorite(
+ favType.artist,
+ artist.info.artisthash
+ );
+
+ if (removed) {
+ is_fav.value = false;
+ }
+
+ return;
+ }
+
+ const added = await addFavorite(favType.artist, artist.info.artisthash);
+
+ if (added) {
+ is_fav.value = true;
+ }
+}