You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.8 KiB

import AsyncStorage from "@react-native-async-storage/async-storage";
import {Artist} from "../Model/Artist";
export const storeLikeArtists = async (artistsList) => {
try {
const jsonArtistsList = JSON.stringify(artistsList);
await AsyncStorage.setItem('likeArtists', jsonArtistsList);
} catch (e) {
console.log("An error occurred while storing artists list", e);
}
};
export const getLikeArtist = async () => {
try {
const jsonArtistsList = await AsyncStorage.getItem('likeArtists');
const artistsList = jsonArtistsList !== null ? JSON.parse(jsonArtistsList) : [];
return artistsList.map(artist => new Artist(artist._id,artist._name,artist._image));
} catch (e) {
console.log("An error occurred while retrieving artists list", e);
return [];
}
}
export const getLikeArtistJson = async () => {
try {
const jsonArtistsList = await AsyncStorage.getItem('likeArtists');
return jsonArtistsList !== null ? JSON.parse(jsonArtistsList) : [];
} catch (e) {
console.log("An error occurred while retrieving artists list", e);
return [];
}
}
export const addLikeArtist = async (artist) => {
try {
const artistsList = await getLikeArtistJson();
artistsList.push(artist);
await storeLikeArtists(artistsList);
} catch (e) {
console.log("An error occurred while adding artist to the list", e);
}
};
export const removeArtist = async (artistId) => {
try {
let artistsList = await getLikeArtistJson();
artistsList = artistsList.filter(artist => artist._id !== artistId);
console.log(artistsList);
await storeLikeArtists(artistsList);
} catch (e) {
console.log("An error occurred while removing artist from the list", e);
}
}