From 5066ce695df30ff8b9cb674a1c34bbaa1b9cfdf1 Mon Sep 17 00:00:00 2001 From: Jakob Moser Date: Thu, 13 Nov 2025 00:18:54 +0100 Subject: [PATCH] Add rather dull favorite handling code --- karaokatalog/ui/static/model/favorites.js | 32 +++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 karaokatalog/ui/static/model/favorites.js diff --git a/karaokatalog/ui/static/model/favorites.js b/karaokatalog/ui/static/model/favorites.js new file mode 100644 index 0000000..3f6cdb5 --- /dev/null +++ b/karaokatalog/ui/static/model/favorites.js @@ -0,0 +1,32 @@ +const FAVORITES_STORAGE_KEY = "songAppFavorites" + +let favoriteIds = null + +export function getFavoriteIds() { + if (favoriteIds === null) { + favoriteIds = new Set( + JSON.parse(localStorage.getItem(FAVORITES_STORAGE_KEY)) || [], + ) + } + + return favoriteIds +} + +function setFavoriteIds(favs) { + localStorage.setItem( + FAVORITES_STORAGE_KEY, + JSON.stringify(Array.from(favs)), + ) +} + +export function addFavorite(id) { + const favs = getFavoriteIds() + favs.add(id) + setFavoriteIds(favs) +} + +export function removeFavorite(id) { + const favs = getFavoriteIds() + favs.delete(id) + setFavoriteIds(favs) +}