From ce8b605e9074f3ed64de32c7feaf9f3a9125415a Mon Sep 17 00:00:00 2001 From: Iryna Rozmaita Date: Wed, 21 Feb 2024 18:27:40 +0200 Subject: [PATCH] update MovieDetails --- src/pages/MovieDetails/MovieDetails.jsx | 57 +++++++++++++++---------- 1 file changed, 35 insertions(+), 22 deletions(-) diff --git a/src/pages/MovieDetails/MovieDetails.jsx b/src/pages/MovieDetails/MovieDetails.jsx index db9d8d5..caf0ac8 100644 --- a/src/pages/MovieDetails/MovieDetails.jsx +++ b/src/pages/MovieDetails/MovieDetails.jsx @@ -1,37 +1,41 @@ -import { NavLink, Outlet, useLocation, useParams } from "react-router-dom"; -import { Link } from "react-router-dom"; -import { Suspense, useEffect, useRef, useState } from "react"; -import { fetchMovieDetails } from "Services/Api"; +import { NavLink, Outlet, useLocation, useParams } from 'react-router-dom'; +import { Link } from 'react-router-dom'; +import { Suspense, useEffect, useRef, useState } from 'react'; +import { fetchMovieDetails } from 'Services/Api'; import css from './MovieDetails.module.css'; - - const MovieDetails = () => { const { movieId } = useParams(); const [details, setDetails] = useState({}); + const { title, poster_path, genres, vote_average, release_date, overview } = + details; + const location = useLocation(); - const { title, poster_path, genres, vote_average, release_date, overview } = details; const backLinkLocationRef = useRef(location.state?.from ?? './movies'); + const getDate = new Date(release_date).getFullYear(); const userScore = Math.round(vote_average * 10); - + useEffect(() => { if (!movieId) return; fetchMovieDetails(movieId) .then(response => setDetails({ ...response })) .catch(error => { - console.error("Error fetching video data:", error); + console.error('Error fetching video data:', error); }); }, [movieId]); - - + return (
- + + {' '} + + {details && (
- { alt="title" />
-

{title} ({getDate})

+

+ {title} ({getDate}) +

User score: {userScore}%

Overview:

{overview}

Genres:

{genres?.map(genre => ( -
  • {genre.name ? genre.name : 'Unknown'}
  • ))} +
  • {genre.name ? genre.name : 'Unknown'}
  • + ))}

    Additional information:

      -
    • Cast
    • -
    • Movie review
    • +
    • + + Cast + +
    • +
    • + + Movie review + +
    @@ -69,8 +84,6 @@ const MovieDetails = () => { export default MovieDetails; - - /* const MovieDetails = () => { const location = useLocation(); @@ -85,8 +98,8 @@ const MovieDetails = () => { //HTTP запит, якщо потрібен }, []) отримати ідентифікатор фільму movieId і робити запит */ - //location.state && location.state.from = location.state?.from - /*return <> +//location.state && location.state.from = location.state?.from +/*return <>

    Movie Details: {movieId}

    Назад на сторінку пошуку