Убрать отображение null в кружке рейтинга

Всем привет, друзья! Возник следующий вопрос. В общем я делала учебный проект, в котором у фильмов есть определенный рейтинг. Видимо не для всех фильмов есть цифра рейтинга в базе данных и по началу мне выдавалось undefined в кружке. Потом мне объяснили как сделать так, чтоб undefined перестало отображаться. С этим было все понятно, однако теперь вместо undefined отображается null- и вот с этим уже борюсь пару дней. Вот этим кодом было убрано undefined

${
              movie.rating &&
              `
            <div class="movie__average movie__average--${getClassByRate(
              movie.rating
            )}">${movie.rating}</div>
            `
            }

А вот на всякий полный код проекта.

const API_KEY = "6b883a19-3b94-4b17-97f6-02f06c154636";
const API_URL_POPULAR =
  "https://kinopoiskapiunofficial.tech/api/v2.2/films/top?type=TOP_100_POPULAR_FILMS&page=1";
const API_URL_SEARCH =
  "https://kinopoiskapiunofficial.tech/api/v2.1/films/search-by-keyword?keyword=";
const API_URL_MOVIE_DETAILS =
  "https://kinopoiskapiunofficial.tech/api/v2.2/films/";

getMovies(API_URL_POPULAR);

async function getMovies(url) {
  const resp = await fetch(url, {
    headers: {
      "Content-Type": "application/json",
      "X-API-KEY": API_KEY,
    },
  });
  const respData = await resp.json();
  showMovies(respData);
}

function getClassByRate(vote) {
  if (vote >= 7) {
    return "green";
  } else if (vote > 5) {
    return "orange";
  } else {
    return "red";
  }
}

function showMovies(data) {
  const moviesEl = document.querySelector(".movies");

  //Clearing previous movies
  document.querySelector(".movies").innerHTML = "";
  data.films.forEach((movie) => {
    const movieEl = document.createElement("div");
    movieEl.classList.add("movie");
    movieEl.innerHTML = `
<div class="movie__cover-inner">
            <img
              src="${movie.posterUrlPreview}"
              class="movie__cover"
              alt="${movie.nameRu}"
            />
            <div class="movie__cover--darkened"></div>
          </div>
          <div class="movie__info">
            <div class="movie__title">${movie.nameRu}</div>
            <div class="movie__category">${movie.genres.map(
              (genre) => `${genre.genre}`
            )}</div>
            
            ${
              movie.rating &&
              `
            <div class="movie__average movie__average--${getClassByRate(
              movie.rating
            )}">${movie.rating}</div>
            `
            }
          </div>
`;
    movieEl.addEventListener("click", () => openModal(movie.filmId));
    moviesEl.appendChild(movieEl);
  });
}

const form = document.querySelector("form");
const search = document.querySelector(".header__search");

form.addEventListener("submit", (e) => {
  e.preventDefault();
  const apiSearchUrl = `${API_URL_SEARCH}${search.value}`;
  if (search.value) {
    getMovies(apiSearchUrl);

    search.value = "";
  }
});

// Modal
const modalEl = document.querySelector(".modal");

async function openModal(id) {
  const resp = await fetch(API_URL_MOVIE_DETAILS + id, {
    headers: {
      "Content-Type": "application/json",
      "X-API-KEY": API_KEY,
    },
  });
  const respData = await resp.json();
  modalEl.classList.add("modal--show");
  document.body.classList.add("stop-scrolling");

  modalEl.innerHTML = `
    <div class="modal__card">
      <img class="modal__movie-backdrop" src="${respData.posterUrl}" alt="" />
      <h2>
        <span class="modal__movie-title">${respData.nameRu}</span>
        <span class="modal__movie-release-year"> - ${respData.year}</span>
      </h2>
      <ul class="modal__movie-info">
        <div class="loader"></div>
        <li class="modal__movie-genre">Genre - ${respData.genres.map(
          (el) => `<span>${el.genre}</span>`
        )}</li>
        ${
          respData.filmLength
            ? `<li class="modal__movie-runtime">Runtime - ${respData.filmLength} mins</li>`
            : ""
        }
        <li>
          Site: <a class="modal__movie-site" href="${respData.webUrl}">${
    respData.webUrl
  }</a>
        </li>
        <li class="modal__movie-overview">Description - ${
          respData.description
        }</li>
      </ul>
      <button type="button" class="modal__button-close">
        Close
      </button>
    </div>
  `;
  const btnClose = document.querySelector(".modal__button-close");
  btnClose.addEventListener("click", () => closeModal());
}

function closeModal() {
  modalEl.classList.remove("modal--show");
  document.body.classList.remove("stop-scrolling");
}

window.addEventListener("click", (e) => {
  if (e.target === modalEl) {
    closeModal();
  }
});

window.addEventListener("keydown", (e) => {
  if (e.keyCode === 27) {
    closeModal();
  }
});

Вопрос- как же все-таки избавиться от этого назойливого null?


Ответы (0 шт):