Skip to content
Snippets Groups Projects
MoviePage.tsx 2.09 KiB
Newer Older
import { Badge, Descriptions, Image } from "antd";
Martin Korec's avatar
Martin Korec committed
import React, {useEffect, useState} from "react";
import { Link, useParams } from "react-router-dom";
Martin Korec's avatar
Martin Korec committed
import {DirectorIO, MovieIO} from "./Preview";
import axios from 'axios';
  const { id, name } = useParams();
Martin Korec's avatar
Martin Korec committed

  const instance = axios.create({
    baseURL: 'http://127.0.0.1:4000/movies/',
  });

  const [movie, setMovie] = useState<MovieIO>(Object);
  const [director, setDirector] = useState<DirectorIO>(Object);


  useEffect(() => {
    const fetchMovie = async () => {
      try {
        const response = await instance.get(id as string);
        setMovie(response.data);
        if (response.data.director) {
          setDirector(response.data.director);
        }
      } catch (err) {

      }
    }

    fetchMovie();
  }, [])
  return (
    <>
      <Descriptions
Martin Korec's avatar
Martin Korec committed
        title={movie.name}
        bordered
        style={{ padding: "5%" }}
      >
        <Descriptions.Item label="Title picture" span={3}>
Martin Korec's avatar
Martin Korec committed
          <Image src={movie.picture}></Image>
        </Descriptions.Item>
        <Descriptions.Item label="Name" span={2}>
Martin Korec's avatar
Martin Korec committed
          {movie.name}
        </Descriptions.Item>
        <Descriptions.Item label="Original Name">
Martin Korec's avatar
Martin Korec committed
          {movie.originalName}
        </Descriptions.Item>
        <Descriptions.Item label="Description" span={3}>
Martin Korec's avatar
Martin Korec committed
          {movie.intro}
        </Descriptions.Item>
        <Descriptions.Item label="Published">
Martin Korec's avatar
Martin Korec committed
          {movie.publishedAt}
        </Descriptions.Item>
        <Descriptions.Item label="Runtime" span={2}>
Martin Korec's avatar
Martin Korec committed
          {movie.runTimeMinutes} minutes
        </Descriptions.Item>
      </Descriptions>
      <Descriptions title="Director" bordered style={{ padding: "5%" }}>
        <Descriptions.Item label="Name" span={3}>
Martin Korec's avatar
Martin Korec committed
          <Link to={`/director/${director.id}`}>
            {director.name} {director.surname}
          </Link>
        </Descriptions.Item>
        <Descriptions.Item label="Birthdate">
          {director.birthDate}
        </Descriptions.Item>
      </Descriptions>
    </>
  );
};