All files / src/store useMovieStore.ts

50% Statements 2/4
0% Branches 0/2
33.33% Functions 1/3
33.33% Lines 1/3

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38                                4x                                          
import { create } from "zustand";
 
interface IMovieStatus {
  favorite: boolean;
  watchlist: boolean;
  rated: boolean | { value: number };
}
 
interface IMovieStore {
  isFavorite: boolean;
  isInWatchlist: boolean;
  isRated: number | boolean | null;
  setMovieStatus: (param: IMovieStatus) => void;
  resetMovieStatus: () => void;
}
 
const useMovieStore = create<IMovieStore>((set) => ({
  isFavorite: false,
  isInWatchlist: false,
  isRated: null,
 
  setMovieStatus: (movieStatus) =>
    set({
      isFavorite: movieStatus.favorite,
      isInWatchlist: movieStatus.watchlist,
      isRated: typeof movieStatus.rated === "object" ? movieStatus.rated.value : movieStatus.rated,
    }),
 
  resetMovieStatus: () =>
    set({
      isFavorite: false,
      isInWatchlist: false,
      isRated: null,
    }),
}));
 
export default useMovieStore;