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