Advertisement
Guest User

Untitled

a guest
Dec 30th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. import { observable, action } from 'mobx';
  2. import { persist } from 'mobx-persist';
  3.  
  4. import _ from 'lodash';
  5.  
  6. import MovieAPI from '../MovieAPI/MovieAPI';
  7.  
  8. class FavoriteMoviesStore {
  9. @persist('list') @observable favoriteMoviesList = [];
  10.  
  11. @observable loading = true;
  12.  
  13. @observable setFavoriteMovies = async () => {
  14. const genresList = await MovieAPI.getGenres();
  15. const genresIndex = _.keyBy(genresList, 'id');
  16. const favoriteList = this.favoriteMoviesList.map((movie) => ({
  17. ...movie,
  18. genresList: movie.genresList.map((id) => genresIndex[id.id]),
  19. }));
  20.  
  21. this.favoriteMoviesList = [...favoriteList];
  22. this.loading = false;
  23. };
  24.  
  25. @action addMovie = (movie) => {
  26. this.favoriteMoviesList = [movie, ...this.favoriteMoviesList];
  27. };
  28.  
  29. @action removeMovie = (id) => {
  30. const removeMovie = this.favoriteMoviesList.filter((next) => next.id !== id);
  31. this.favoriteMoviesList = [...removeMovie];
  32. };
  33. }
  34.  
  35. export default FavoriteMoviesStore;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement