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
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);
|
|
}
|
|
} |