MovieChart.js 2.35 KB
Newer Older
Jiwon Yoon's avatar
Jiwon Yoon committed
1
2
import { useState, useEffect } from 'react'
import movieApi from '../../apis/movie.api.js'
Jiwon Yoon's avatar
Jiwon Yoon committed
3
import { Link } from 'react-router-dom';
Jiwon Yoon's avatar
Jiwon Yoon committed
4
import styles from "./movieChart.module.scss"
Jiwon Yoon's avatar
Jiwon Yoon committed
5

Jiwon Yoon's avatar
Jiwon Yoon committed
6
const MovieChart = () => {
Jiwon Yoon's avatar
Jiwon Yoon committed
7
8
    const [TMDB_TopRated_Data, setTMDB_TopRated_Data] = useState([])
    const category="popular"
Jiwon Yoon's avatar
Jiwon Yoon committed
9
10
11
12
13
14
    useEffect(() => {
        getTMDB_TopRated()
    }, [])

    async function getTMDB_TopRated() {
        try {
Jiwon Yoon's avatar
Jiwon Yoon committed
15
            const data = await movieApi.getMoviesfromTM(category)
Jiwon Yoon's avatar
Jiwon Yoon committed
16
            console.log(data)
Jiwon Yoon's avatar
Jiwon Yoon committed
17
            setTMDB_TopRated_Data([...data])
Jiwon Yoon's avatar
Jiwon Yoon committed
18
19
        } catch (error) {

Jiwon Yoon's avatar
Jiwon Yoon committed
20
        }
Jiwon Yoon's avatar
Jiwon Yoon committed
21
    }
Jiwon Yoon's avatar
Jiwon Yoon committed
22
23
    return (
        <div class="row row-cols-1 row-cols-md-4 g-4">
Jiwon Yoon's avatar
Jiwon Yoon committed
24
25
            {console.log(TMDB_TopRated_Data)}
            {TMDB_TopRated_Data
Jiwon Yoon's avatar
Jiwon Yoon committed
26
                ?
Jiwon Yoon's avatar
Jiwon Yoon committed
27
                TMDB_TopRated_Data.map(movie => (
Jiwon Yoon's avatar
Jiwon Yoon committed
28
                    <div className="card h-100 " style={{ backgroundColor: "black" }}>
Jiwon Yoon's avatar
Jiwon Yoon committed
29
30
                        <Link to={{
                            pathname: `/movie/${movie.id}`,
Jiwon Yoon's avatar
Jiwon Yoon committed
31
                            state: {...movie}
Jiwon Yoon's avatar
Jiwon Yoon committed
32
                        }} className={`${styles.layer}`} >
Jiwon Yoon's avatar
Jiwon Yoon committed
33
                            <img src={`https://image.tmdb.org/t/p/original${movie.poster_path}`} className={`card-img-top rounded ${styles.poster}`} alt="Movie Poster" />
Jiwon Yoon's avatar
Jiwon Yoon committed
34
35
                            <div className={`${styles.description}`}>{movie.overview}</div>
                        </Link>
Jiwon Yoon's avatar
Jiwon Yoon committed
36
                        <div className="card-body text-light">
Jiwon Yoon's avatar
Jiwon Yoon committed
37
38
                            <div onmouseover="this.stop()" className={`h2 card-title text-center ${styles.title} ${styles.txt}`}>{movie.title}</div>
                            <p className={`card-text text-center ${styles.txt}`}>예매율: {movie.ticket_sales}0% | {movie.runtime}</p>
Jiwon Yoon's avatar
Jiwon Yoon committed
39
40
                            <p className="card-text text-center"><small className="text-muted">{movie.release_date} 개봉</small></p>
                        </div>
Jiwon Yoon's avatar
Jiwon Yoon committed
41
42
                        <Link to={{
                            pathname:`/ticket`,
Jiwon Yoon's avatar
Jiwon Yoon committed
43
44
                            state: {movieId:movie.id,}
                        }} className="text-center">
Jiwon Yoon's avatar
Jiwon Yoon committed
45
46
                            <button className="btn btn-warning">예매하기</button>
                        </Link>
Jiwon Yoon's avatar
Jiwon Yoon committed
47
48
49
50
51
52
53
54
55
                    </div>
                ))
                : <div>영화정보를 로딩할  없습니다.</div>
            }
        </div>
    )
}

export default MovieChart