aboutsummaryrefslogtreecommitdiffstats
path: root/src/pages/browse/index.tsx
blob: 90c13c279867439233b7d433c3fbdbb81490bfea (plain)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import { link } from 'fs'
import Link from 'next/link'
import { BellIcon, MagnifyingGlassIcon, PlayIcon, ArrowSmallDownIcon} from '@heroicons/react/24/solid'
import { InformationCircleIcon} from '@heroicons/react/24/outline'
import { useEffect, useState } from 'react'
import requests from '../../../services/requests'
import Image from "next/image"
import PreviewCard from '@prueba/components/PreviewCard'

// import NetflixLogo from '../../../public/images/netflix_logo.svg'
const baseURL ='https://api.themoviedb.org/3/'
const imageURL = 'https://image.tmdb.org/t/p/original'

export default function Home() {
  const [heroMovie, setHeroMovie] = useState()
  const [trendingMovies, setTrendingMovies] = useState()
  useEffect(() => {
    fetch(`${baseURL}${requests.fetchTopRated}`).then(res => res.json()).then((data) => {
      console.log(data.results)
      setHeroMovie(data.results[3])
    })
  }, [])
  useEffect(() => {
    fetch(`${baseURL}${requests.fetchTrending}`).then(res => res.json()).then((data) => {
      setTrendingMovies(data.results)
    })
  }, [])

  return (
    <div className="flex flex-col text-white justify-between gap-10 h-screen">
      <header className='flex justify-between pt-3 px-8 z-10 text-xs'>
        <div className='flex items-center gap-4'>
          <img className='scale-[65%] mr-4' src="../images/netflix_logo.svg" alt="SVG image"/> 
          <a className='text-white font-bold'>Home</a>
          <a className='text-white'>TV Shows</a>
          <a className='text-white'>Movies</a>
          <a className='text-white'>News & Popular</a>
          <a className='text-white'>My List</a>
          <a className='text-white'>Browse by Language</a>
        </div>
        <div className='flex items-center gap-4'>
          <MagnifyingGlassIcon className='h-4 w-4'/>
          <a className='text-white'>Kids</a>
          <BellIcon className='h-4 w-4'/>
          <div className='h-8 w-8'>
              <Link href='../' className="w-[128px] h-[128px] rounded-xl overflow-hidden bg-white">
                <img src='https://avatars.dicebear.com/api/male/124.svg' alt=""/>
              </Link>
          </div>
          <ArrowSmallDownIcon className='h-4 w-4'/>
        </div>
      </header>
        <section className='w-1/3 ml-10'>
          <div className='flex items-center'>
            <img className='scale-[65%] mr-5' src="../images/N.svg" alt="SVG image"/> 
            <h1 className='text-sm font-mono tracking-[.4rem]'>MOVIES</h1>
          </div>
          <div className='h-fit text-[3rem]'>
              {heroMovie?.original_title}
          </div>
          <div className='flex items-center'>
            <img className='scale-[45%]' src="../images/Top10.svg" alt="SVG image"/> 
            <h2 className='font-bold'>#1 in TV Shows Today</h2>
          </div>
          <div>
            <p className=' text-sm break-words text-justify'>
              {heroMovie?.overview}
            </p>
          </div>
          <div className='flex gap-4 mt-4'>
            <button className='flex items-center p-4 h-10 bg-white text-black text-xl justify-center font-semibold ring-black ring-offset-10 hover:ring-4 rounded'>
              <PlayIcon className='h-6 w-6 mr-2'/>Play
            </button>
            <button className='flex items-center p-4 h-10 bg-gray-700/80 justify-center ring-white hover:ring-4 rounded'>
              <InformationCircleIcon className='h-6 w-6 mr-2'/>More Info
            </button>
          </div>
        </section>
        <section className=' ml-10 mb-10 z-10'>
          <h2>Popular on Netflix</h2>
          <div className='flex flex-row gap-3 overflow-x-auto mt-4 items-center p-5 pl-10 -ml-10'>
            {
              trendingMovies?.map((movie, index) => (
                <PreviewCard key={index} movie={movie}/>
            ))} 
          </div>
        </section>
      <div className='absolute h-full w-full bg-contain bg-center -z-20 bg-right' style={{backgroundImage: `url(${imageURL}${heroMovie?.backdrop_path})`}}></div>
      <div className='absolute w-full h-32 -z-10 bg-gradient-to-b from-black'></div>
      <div className='absolute bottom-0 w-full h-20 -z-10 bg-gradient-to-t from-black'></div>
      <div className='absolute w-2/3 h-full -z-10 bg-gradient-to-r from-black'></div>
    </div>
  )
}