Verified Commit 5066ce69 authored by Jakob Moser's avatar Jakob Moser
Browse files

Add rather dull favorite handling code

parent 625a6d72
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
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)
}