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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72import HomeSlider from "components/common/HomeSlider";
import Loader from "components/common/Loader";
import Message from "components/common/Message";
import Poster from "components/common/Poster";
import Section from "components/common/Section";
import React from "react";
import Slider from "react-slick";
import styled from "styled-components";
const HomeViewerBlock = styled.div`
height: calc(100vh - 50px);
width: 100%;
height: 100%;
position: relative;
padding: 0px;
`;
const TrendingTitle = styled.div`
font-size: 24px;
text-align: center;
margin-top: 1.125rem;
`;
const SliderContainer = styled.div`
padding: 30px;
margin-bottom: 1.125rem;
`;
const HomeViewer = ({ nowPlaying, trending, error, loading }) => {
const settings = {
infinite: true,
speed: 500,
slidesToShow: 8,
slidesToScroll: 8,
adaptiveHeight: true,
};
return loading ? (
<Loader />
) : (
<HomeViewerBlock>
{nowPlaying && nowPlaying.length > 0 && (
<HomeSlider nowPlaying={nowPlaying} isMovie={true} />
)}
<TrendingTitle>{"지난주 인기 컨텐츠"}</TrendingTitle>
<SliderContainer>
<Slider {...settings}>
{trending.map((trend) => (
<Poster
key={trend.id}
id={trend.id}
imageUrl={trend.poster_path}
title={
trend.original_title
? trend.original_title
: trend.original_name
}
year={
trend.release_date ? trend.release_date : trend.first_air_date
}
isMovie={trend.original_title ? true : false}
/>
))}
</Slider>
</SliderContainer>
{error && <Message color="#e74c3c" text={error} />}
</HomeViewerBlock>
);
};
export default HomeViewer;