Add rather dull favorite handling code
This commit is contained in:
parent
625a6d72f7
commit
5066ce695d
32
karaokatalog/ui/static/model/favorites.js
Normal file
32
karaokatalog/ui/static/model/favorites.js
Normal file
@ -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)
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user