From dd44d1778ad53287e93406628400afe66c9ee71b Mon Sep 17 00:00:00 2001 From: Dara Oyedun Date: Mon, 10 Jun 2024 17:59:05 -0700 Subject: [PATCH 1/9] milestone 1 AND 2 --- .env | 1 + package-lock.json | 8 ++++---- package.json | 2 +- src/App.css | 5 +++++ src/App.jsx | 42 +++++++++++++++++++++++++++++++++++++----- src/MovieCard.css | 19 +++++++++++++++++++ src/MovieCard.jsx | 12 ++++++++++++ src/MovieList.css | 4 ++++ src/MovieList.jsx | 20 ++++++++++++++++++++ src/movieImage.png | Bin 0 -> 10239 bytes 10 files changed, 103 insertions(+), 10 deletions(-) create mode 100644 .env create mode 100644 src/MovieCard.css create mode 100644 src/MovieCard.jsx create mode 100644 src/MovieList.css create mode 100644 src/MovieList.jsx create mode 100644 src/movieImage.png diff --git a/.env b/.env new file mode 100644 index 00000000..1f131d0d --- /dev/null +++ b/.env @@ -0,0 +1 @@ +VITE_API_KEY=0cf11cf1a2cacefffa0ac6bb28bd02b2 diff --git a/package-lock.json b/package-lock.json index 92a683d2..941b4915 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "eslint-plugin-react": "^7.34.1", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.6", - "vite": "^5.2.0" + "vite": "^5.2.13" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -4100,9 +4100,9 @@ } }, "node_modules/vite": { - "version": "5.2.7", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.7.tgz", - "integrity": "sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA==", + "version": "5.2.13", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.13.tgz", + "integrity": "sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==", "dev": true, "dependencies": { "esbuild": "^0.20.1", diff --git a/package.json b/package.json index eded5715..374006bf 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,6 @@ "eslint-plugin-react": "^7.34.1", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.6", - "vite": "^5.2.0" + "vite": "^5.2.13" } } diff --git a/src/App.css b/src/App.css index 0bf65669..d2fa8a48 100644 --- a/src/App.css +++ b/src/App.css @@ -26,3 +26,8 @@ flex-direction: column; } } +/* .MovieCard2{ + display: flex; + flex-wrap: wrap; + flex-direction: row; +} */ diff --git a/src/App.jsx b/src/App.jsx index 48215b3f..75526050 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,10 +1,42 @@ -import { useState } from 'react' +import { useState , useEffect} from 'react' import './App.css' +import MovieCard from './MovieCard.jsx'; +import MovieList from './MovieList.jsx'; -const App = () => { -
- -
+function App() { + const [movies, setMovies] = useState([]); + const [pageNumber, setPageNumber] = useState(1); + + useEffect(() => { + const fetchURL = 'https://api.themoviedb.org/3/movie/now_playing?api_key=0cf11cf1a2cacefffa0ac6bb28bd02b2'; + fetch(fetchURL) + .then(res => res.json()) + .then(res => setMovies(prevMovies => prevMovies.concat(res.results))) + .catch(err => console.error(err));}, [pageNumber]); + + + function loadMorePages(){ + setPageNumber(prevpageNumber => prevpageNumber + 1); + useEffect(); + } + + return( +
+
+

Flixster

+ + + +
+
+ +
+ +
+

2024 Flixster

+
+
+ ) } export default App diff --git a/src/MovieCard.css b/src/MovieCard.css new file mode 100644 index 00000000..e7b9a8bc --- /dev/null +++ b/src/MovieCard.css @@ -0,0 +1,19 @@ +.movie-card{ + border: solid black; + margin: 2% 0% 2% 2%; + border-radius: 10px; + width: 20%; + height: 10%; + +} +.movieImage{ + width: 100%; + padding-bottom: 10%; + margin-left: auto; + margin-right: auto; + display: block; + border-radius: 10px; +} +p{ + text-align: center; +} diff --git a/src/MovieCard.jsx b/src/MovieCard.jsx new file mode 100644 index 00000000..f8bfd90a --- /dev/null +++ b/src/MovieCard.jsx @@ -0,0 +1,12 @@ +import './MovieCard.css'; +function MovieCard(props){ + + return( +
+ Movie Image +

{props.title}

+

{props.rating}

+
+ ) +} +export default MovieCard; diff --git a/src/MovieList.css b/src/MovieList.css new file mode 100644 index 00000000..190eb5d3 --- /dev/null +++ b/src/MovieList.css @@ -0,0 +1,4 @@ +.movieCards{ + display: flex; + flex-wrap: wrap; +} diff --git a/src/MovieList.jsx b/src/MovieList.jsx new file mode 100644 index 00000000..ee438ac1 --- /dev/null +++ b/src/MovieList.jsx @@ -0,0 +1,20 @@ +import './MovieList.css'; +import MovieCard from './MovieCard.jsx'; +function MovieList(props){ + + function createMovieCards(card){ + return( + + ) + } + return( +
+ {props.data.map(createMovieCards)} +
+ ) +} +export default MovieList; diff --git a/src/movieImage.png b/src/movieImage.png new file mode 100644 index 0000000000000000000000000000000000000000..06d559a48190c3607374aeacd64b5ef2cd1db16c GIT binary patch literal 10239 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 b*M>5xB;% Date: Tue, 11 Jun 2024 12:01:12 -0700 Subject: [PATCH 2/9] Milestone 2 cont'd --- .env | 2 +- src/App.css | 26 ++++++++++++++++++++++---- src/App.jsx | 36 +++++++++++++++++++++++++----------- src/MovieCard.css | 15 ++++++++------- src/MovieList.css | 2 ++ src/MovieList.jsx | 21 +++++++++++++-------- 6 files changed, 71 insertions(+), 31 deletions(-) diff --git a/.env b/.env index 1f131d0d..408647ac 100644 --- a/.env +++ b/.env @@ -1 +1 @@ -VITE_API_KEY=0cf11cf1a2cacefffa0ac6bb28bd02b2 +VITE_API_KEY=abdf86b5a5bfd53f8efefa7cdcb50fa9 diff --git a/src/App.css b/src/App.css index d2fa8a48..bdd9eaa2 100644 --- a/src/App.css +++ b/src/App.css @@ -26,8 +26,26 @@ flex-direction: column; } } -/* .MovieCard2{ +header{ + border: solid black; +} +.title-header{ + text-align: center; +} +.loadMoreButton{ + padding: 10px 20px; + font-size: 16px; + cursor: pointer; + justify-content: center; +} +footer{ display: flex; - flex-wrap: wrap; - flex-direction: row; -} */ + flex-direction: column; +} +.button{ + margin-left: auto; + margin-right: auto; +} +.search-bar{ + width: 80% +} diff --git a/src/App.jsx b/src/App.jsx index 75526050..a1eaff90 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -6,34 +6,48 @@ import MovieList from './MovieList.jsx'; function App() { const [movies, setMovies] = useState([]); const [pageNumber, setPageNumber] = useState(1); + const [search, setSearch] = useState(''); + const [searchResults, setSearchResults] = useState([]); useEffect(() => { - const fetchURL = 'https://api.themoviedb.org/3/movie/now_playing?api_key=0cf11cf1a2cacefffa0ac6bb28bd02b2'; + const fetchURL = 'https://api.themoviedb.org/3/movie/now_playing?api_key=abdf86b5a5bfd53f8efefa7cdcb50fa9&page=' + pageNumber.toString()+ '&language=en-US'; fetch(fetchURL) .then(res => res.json()) - .then(res => setMovies(prevMovies => prevMovies.concat(res.results))) + .then(res => setMovies([...movies, ...res.results])) .catch(err => console.error(err));}, [pageNumber]); - function loadMorePages(){ - setPageNumber(prevpageNumber => prevpageNumber + 1); - useEffect(); + setPageNumber(prevpageNumber => prevpageNumber+1); + } + + function searchData(e){ + e.preventDefault(); + fetch('https://api.themoviedb.org/3/movie/now_playing?api_key=abdf86b5a5bfd53f8efefa7cdcb50fa9&page=' + pageNumber.toString()+ '&language=en-US?&query='+ search.toString() + '&language=en-US') + .then(res => res.json()) + .then(data => setSearchResults([data.results])) + .catch(err => console.error(err)); } + console.log(search) + return(
-

Flixster

- - - +

Flixster

+ setSearch(e.target.value.toLowerCase())}/> + +
-
-

2024 Flixster

+
+ +
+
+

2024 Flixster

+
) diff --git a/src/MovieCard.css b/src/MovieCard.css index e7b9a8bc..ce2206e4 100644 --- a/src/MovieCard.css +++ b/src/MovieCard.css @@ -1,19 +1,20 @@ .movie-card{ - border: solid black; margin: 2% 0% 2% 2%; border-radius: 10px; - width: 20%; - height: 10%; + border: solid black; + margin-left: auto; + margin-right: auto; + } .movieImage{ width: 100%; - padding-bottom: 10%; - margin-left: auto; - margin-right: auto; display: block; - border-radius: 10px; + border-top-right-radius: 10px; + border-top-left-radius: 10px; + } p{ text-align: center; + text-wrap: wrap; } diff --git a/src/MovieList.css b/src/MovieList.css index 190eb5d3..d1f3517c 100644 --- a/src/MovieList.css +++ b/src/MovieList.css @@ -1,4 +1,6 @@ .movieCards{ display: flex; flex-wrap: wrap; + border: solid black; + margin-top: 3%; } diff --git a/src/MovieList.jsx b/src/MovieList.jsx index ee438ac1..cf9e5998 100644 --- a/src/MovieList.jsx +++ b/src/MovieList.jsx @@ -1,16 +1,21 @@ import './MovieList.css'; import MovieCard from './MovieCard.jsx'; function MovieList(props){ + const id = [] function createMovieCards(card){ - return( - - ) - } + if(!id.includes(card.id)){ + id.push(card.id); + return( + + ) + } + } + return(
{props.data.map(createMovieCards)} From 830daa22f8a9e6092054c9f7a49963bcf071d1aa Mon Sep 17 00:00:00 2001 From: Dara Oyedun Date: Wed, 12 Jun 2024 15:18:32 -0700 Subject: [PATCH 3/9] Modal displays basic information, pasrtial css --- src/Modal.css | 40 ++++++++++++++++++++++++++++++++++++++++ src/Modal.jsx | 26 ++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 src/Modal.css create mode 100644 src/Modal.jsx diff --git a/src/Modal.css b/src/Modal.css new file mode 100644 index 00000000..6d8145dd --- /dev/null +++ b/src/Modal.css @@ -0,0 +1,40 @@ +.modalOverlay{ + position: fixed; + justify-content: center; + align-items: center; + z-index: 1; + width: 50%; + height: 70%; + top: 25%; + left: 25%; +} +.modalContainer{ + padding: 20px; + border-radius: 10px; + width: 100%; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); + color: white; + border: solid white; +} +.closeButton{ + background: none; + border: none; + font-size: 1.5rem; + position: absolute; + top: 10px; + right: 10px; + cursor: pointer; +} +.modalContent{ + margin-top: 20px; + +} +.hide{ + display: none; +} +.show{ + display: flex; +} +.main-image{ + width: 20% +} diff --git a/src/Modal.jsx b/src/Modal.jsx new file mode 100644 index 00000000..e4d10edd --- /dev/null +++ b/src/Modal.jsx @@ -0,0 +1,26 @@ +import './Modal.css'; +import React from 'react'; +import MovieCard from './MovieCard'; +function Modal(props){ + + return( +
+
+
+ +
+
Title: {props.data.title}
+ +
Original Title: {props.data.originalTitle}
+
Overview: {props.data.overview}
+
Release Date: {props.data.releaseDate}
+
+ + +
+
+
+
+ ) +} +export default Modal; From 8be84435993f951249db35530101ed257ef00e6d Mon Sep 17 00:00:00 2001 From: Dara Oyedun Date: Wed, 12 Jun 2024 15:26:32 -0700 Subject: [PATCH 4/9] My App here shows Modal with displayed information from API key --- src/App.css | 23 +++++++- src/App.jsx | 165 +++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 146 insertions(+), 42 deletions(-) diff --git a/src/App.css b/src/App.css index bdd9eaa2..c8923d61 100644 --- a/src/App.css +++ b/src/App.css @@ -27,20 +27,32 @@ } } header{ - border: solid black; + border: solid white; + box-shadow: 0 0 20px rgba(255, 255, 255, 60); } .title-header{ text-align: center; + color: white; + /* apply box shadow here */ } .loadMoreButton{ padding: 10px 20px; font-size: 16px; cursor: pointer; justify-content: center; + background-color: white; + color: black } footer{ display: flex; flex-direction: column; + position: relative; + left: 0; + bottom: 0; + width: 100%; + height: 10%; + background-color:black; + border: solid white; } .button{ margin-left: auto; @@ -49,3 +61,12 @@ footer{ .search-bar{ width: 80% } +.body{ + background-color: black; +} +.hide{ + display: none; +} +.show{ + display: flex; +} diff --git a/src/App.jsx b/src/App.jsx index a1eaff90..a2a8ff46 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -2,55 +2,138 @@ import { useState , useEffect} from 'react' import './App.css' import MovieCard from './MovieCard.jsx'; import MovieList from './MovieList.jsx'; +import NowPlayingBar from './NowPlayingBar.jsx'; +import Modal from './Modal.jsx'; +// import SearchBar from './SearchBar.jsx'; function App() { + const [isSearching, setIsSearching] = useState(false); + const [requestAPI, setRequestAPI] = useState({'search': 'now-playing', 'page' : 1}); + //state variable to store movie data const [movies, setMovies] = useState([]); + //state variable to store page number const [pageNumber, setPageNumber] = useState(1); - const [search, setSearch] = useState(''); - const [searchResults, setSearchResults] = useState([]); - - useEffect(() => { - const fetchURL = 'https://api.themoviedb.org/3/movie/now_playing?api_key=abdf86b5a5bfd53f8efefa7cdcb50fa9&page=' + pageNumber.toString()+ '&language=en-US'; - fetch(fetchURL) - .then(res => res.json()) - .then(res => setMovies([...movies, ...res.results])) - .catch(err => console.error(err));}, [pageNumber]); - - function loadMorePages(){ - setPageNumber(prevpageNumber => prevpageNumber+1); - } - - function searchData(e){ - e.preventDefault(); - fetch('https://api.themoviedb.org/3/movie/now_playing?api_key=abdf86b5a5bfd53f8efefa7cdcb50fa9&page=' + pageNumber.toString()+ '&language=en-US?&query='+ search.toString() + '&language=en-US') - .then(res => res.json()) - .then(data => setSearchResults([data.results])) - .catch(err => console.error(err)); - } - - console.log(search) + //state variable to store user's search items + const [searchData, setSearchData] = useState(''); + //state variable to store search results + const [showModal, setshowModal] = useState(false); + // to switch between tabs between nowPlaying and Search buttons + const [nowPlayingButton, setnowPlayingButton] = useState('active'); + const [searchButton, setSearchButton] = useState('inactive'); + // to hide and show search bar + const [displaySearchBarButton, setdisplaySearchBarButton] = useState('hide') + //import API key from .env file and assign it to a variable + const apiKey = import.meta.env.VITE_API_KEY; + const fetchURL = 'https://api.themoviedb.org/3/movie/now_playing?api_key=abdf86b5a5bfd53f8efefa7cdcb50fa9&page=' + pageNumber+ '&language=en-US'; + + //function to choose what to display on the page + const chooseWhatToDisplay = async (URL, target) => { + try{ + if (target === 'now-playing-home'){ + setMovies([]); + setPageNumber(1); + const response = await fetch(URL); + const data = await response.json(); + setMovies(data.results); + + } + + } + catch(err){ + console.log(err); + } +} + + const fetchMovieData = async () => { + try{ + const response = await fetch(fetchURL); + const data = await response.json(); + setMovies(movies.concat(data.results)); + } + catch(err){ + console.log(err); + } + } + useEffect(() => { + fetchMovieData()}, [pageNumber]); + console.log(movies); + + + function loadMorePages(){ + setPageNumber(prevpageNumber => prevpageNumber+1); + } + + function searchDataValue(){ + const options = { + method: 'GET', + headers: { + accept: 'application/json', + Authorization: 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJhYmRmODZiNWE1YmZkNTNmOGVmZWZhN2NkY2I1MGZhOSIsInN1YiI6IjY2Njg4NzllNmU0MTZkMDlhODhiNzYzOCIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.h4y2UevgrG927Du8ysa-yc4y9k7D3Yh7zDK2TU8eYEE' + } + }; + fetch(`https://api.themoviedb.org/3/search/movie?query=${searchData}&include_adult=false&language=en-US&page=${pageNumber}`, options) + .then(response => response.json()) + .then(response => setMovies(response.results)) + .catch(err => console.error(err));} + + function NowPlaying(event){ + if (event.target.id === 'now-playing'){ + setnowPlayingButton('active'); + setSearchButton('inactive'); + setdisplaySearchBarButton('hide') + chooseWhatToDisplay(fetchURL, 'now-playing-home') + + } + else{ + setnowPlayingButton('inactive'); + setSearchButton('active'); + setdisplaySearchBarButton('show') + searchDataValue(); + } + + } + + + + return( -
-
-

Flixster

- setSearch(e.target.value.toLowerCase())}/> - - -
-
- -
-
-
- -
-
-

2024 Flixster

+
+
+

Flixster

+ + + + +
+ setSearchData(e.target.value.toLowerCase())}/> + +
+
+
+
-
+
+
+ +
+
+

2024 Flixster

+
+
+
) -} +} export default App From aaa168c32a86a2a20cf7637bfd0e048c90bec3f4 Mon Sep 17 00:00:00 2001 From: Dara Oyedun Date: Fri, 14 Jun 2024 09:40:55 -0700 Subject: [PATCH 5/9] changes with good modal and clean code --- index.html | 4 + src/App.css | 64 ++++++++++++-- src/App.jsx | 208 ++++++++++++++++++++++++++++------------------ src/Modal.css | 51 ++++++++++-- src/Modal.jsx | 49 +++++++++-- src/MovieCard.css | 76 ++++++++++++++++- src/MovieCard.jsx | 65 +++++++++++++-- src/MovieList.css | 1 - src/MovieList.jsx | 53 ++++++++---- src/SideBar.css | 7 ++ src/SideBar.jsx | 60 +++++++++++++ src/index.css | 4 +- 12 files changed, 514 insertions(+), 128 deletions(-) create mode 100644 src/SideBar.css create mode 100644 src/SideBar.jsx diff --git a/index.html b/index.html index 0abcfe5f..84237a99 100644 --- a/index.html +++ b/index.html @@ -2,6 +2,9 @@ + + + Flixster @@ -9,5 +12,6 @@
+ diff --git a/src/App.css b/src/App.css index c8923d61..c38ca76c 100644 --- a/src/App.css +++ b/src/App.css @@ -1,14 +1,14 @@ .App { text-align: center; + } .App-header { - background-color: #282c34; display: flex; flex-direction: row; align-items: center; justify-content: space-evenly; - color: white; + background-color: transparent; padding: 20px; } @@ -27,12 +27,14 @@ } } header{ - border: solid white; - box-shadow: 0 0 20px rgba(255, 255, 255, 60); + display: inline; + } .title-header{ text-align: center; color: white; + padding-left: 50%; + padding-right: auto; /* apply box shadow here */ } .loadMoreButton{ @@ -62,7 +64,8 @@ footer{ width: 80% } .body{ - background-color: black; + background-color: #0d0f16; + margin-left: 20%; } .hide{ display: none; @@ -70,3 +73,54 @@ footer{ .show{ display: flex; } +.header{ + display: flex; + justify-content: space-between; + align-items: center; + padding: 10px 20px; +} +.nav-bar{ + list-style: none; + margin: 0; + padding: 0; + display: flex; + background-color: rgba(255, 255, 255, .15); + backdrop-filter: blur(5px); + +} +@media (max-width: 768px){ + .header{ + flex-direction: column; + align-items: center; + } +} +.whole-body{ + background-color: #0d0f16; +} + +.button { + font-family: "Poppins"; + border-radius: 10px; + padding: 1vh; + font-size: 110%; + background-color: rgba(255, 82, 122, 0.8); + border: none; + color: white; + backdrop-filter: blur(5px); + + transition-duration: .5s; +} +.button:hover { + background-color: rgba(255, 82, 122, .6); + +} + +.navigation-bar { + display: flex; + gap: 1%; + width: 33%; + padding: 2vh 2vh; + background-color: rgba(255, 255, 255, 0.2); + backdrop-filter: blur(5px); + border-radius: 10px; +} diff --git a/src/App.jsx b/src/App.jsx index a2a8ff46..3b74deb6 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,127 +1,175 @@ -import { useState , useEffect} from 'react' +import { useState, useEffect } from 'react' import './App.css' -import MovieCard from './MovieCard.jsx'; import MovieList from './MovieList.jsx'; -import NowPlayingBar from './NowPlayingBar.jsx'; -import Modal from './Modal.jsx'; -// import SearchBar from './SearchBar.jsx'; +import SideBar from './SideBar'; function App() { - const [isSearching, setIsSearching] = useState(false); - const [requestAPI, setRequestAPI] = useState({'search': 'now-playing', 'page' : 1}); //state variable to store movie data - const [movies, setMovies] = useState([]); + const [movies, setMovieData] = useState([]); + //state variable to store page number const [pageNumber, setPageNumber] = useState(1); + //state variable to store user's search items const [searchData, setSearchData] = useState(''); - //state variable to store search results - const [showModal, setshowModal] = useState(false); + // to switch between tabs between nowPlaying and Search buttons const [nowPlayingButton, setnowPlayingButton] = useState('active'); const [searchButton, setSearchButton] = useState('inactive'); + // to hide and show search bar - const [displaySearchBarButton, setdisplaySearchBarButton] = useState('hide') + const [displaySearchBarButton, setdisplaySearchBarButton] = useState('hide'); + //import API key from .env file and assign it to a variable const apiKey = import.meta.env.VITE_API_KEY; - const fetchURL = 'https://api.themoviedb.org/3/movie/now_playing?api_key=abdf86b5a5bfd53f8efefa7cdcb50fa9&page=' + pageNumber+ '&language=en-US'; + let fetchURL = 'https://api.themoviedb.org/3/discover/movie?api_key=abdf86b5a5bfd53f8efefa7cdcb50fa9&language=en-US'; - //function to choose what to display on the page - const chooseWhatToDisplay = async (URL, target) => { - try{ - if (target === 'now-playing-home'){ - setMovies([]); - setPageNumber(1); - const response = await fetch(URL); - const data = await response.json(); - setMovies(data.results); + //create new states FOR SWITCHING BETWEEN FUNCTIONS + const [fetchBetweenTabs, setFetchBetweenTabs] = useState('now-playing-home'); - } + //state variable to store sort type + const [sortType, setSortType] = useState(''); + + //state variable to store search data + const [searchTerm, setSearchTerm] = useState(''); + + //state variable to store side-bar information + const [likedMovies, setLikedMovies] = useState([]); - } - catch(err){ - console.log(err); - } -} - const fetchMovieData = async () => { - try{ + //function to choose what to display on the page. If it's now playing, it will fetch the data from now-playing endpoint. + // If sort button is clicked, then it'll fetch the data from sort endpoint + async function handleDiscoverRequest() { + try { + if (fetchBetweenTabs === 'now-playing-home') { + if (sortType != "") { + fetchURL += '&sort_by=' + sortType; + } + setMovieData([]); + setPageNumber(1); const response = await fetch(fetchURL); const data = await response.json(); - setMovies(movies.concat(data.results)); + setMovieData(data.results); } - catch(err){ - console.log(err); + else { + setFetchBetweenTabs('search-results'); } } - useEffect(() => { - fetchMovieData()}, [pageNumber]); - console.log(movies); + catch (err) { + console.error(err); + } + } + //function to fetch new page of data when user clicks on load more button + const fetchNewPageMovieData = async () => { + try { + if (sortType != "") { + fetchURL += '&sort_by=' + sortType; + } + fetchURL += '&page=' + pageNumber; + const response = await fetch(fetchURL); + const data = await response.json(); + setMovieData(movies.concat(data.results)); + } + catch (err) { + console.log(err); + } + } - function loadMorePages(){ - setPageNumber(prevpageNumber => prevpageNumber+1); + //useEffect to fetch if the tab is now playing or search + useEffect(() => { + if (fetchBetweenTabs === 'now-playing-home' && searchTerm === '') { + fetchNewPageMovieData() + } + else { + searchDataValue(searchTerm); } + }, [pageNumber, searchTerm]); - function searchDataValue(){ + //function to load more pages of data when user clicks on load more button + function loadMorePages() { + setPageNumber(prevpageNumber => prevpageNumber + 1); + } + + //function to fetch data from search endpoint + function searchDataValue() { const options = { method: 'GET', headers: { - accept: 'application/json', - Authorization: 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJhYmRmODZiNWE1YmZkNTNmOGVmZWZhN2NkY2I1MGZhOSIsInN1YiI6IjY2Njg4NzllNmU0MTZkMDlhODhiNzYzOCIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.h4y2UevgrG927Du8ysa-yc4y9k7D3Yh7zDK2TU8eYEE' + accept: 'application/json', + Authorization: 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJhYmRmODZiNWE1YmZkNTNmOGVmZWZhN2NkY2I1MGZhOSIsInN1YiI6IjY2Njg4NzllNmU0MTZkMDlhODhiNzYzOCIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.h4y2UevgrG927Du8ysa-yc4y9k7D3Yh7zDK2TU8eYEE' } }; fetch(`https://api.themoviedb.org/3/search/movie?query=${searchData}&include_adult=false&language=en-US&page=${pageNumber}`, options) .then(response => response.json()) - .then(response => setMovies(response.results)) - .catch(err => console.error(err));} - - function NowPlaying(event){ - if (event.target.id === 'now-playing'){ - setnowPlayingButton('active'); - setSearchButton('inactive'); - setdisplaySearchBarButton('hide') - chooseWhatToDisplay(fetchURL, 'now-playing-home') - - } - else{ - setnowPlayingButton('inactive'); - setSearchButton('active'); - setdisplaySearchBarButton('show') - searchDataValue(); - } - + .then(response => setMovieData((response.results))) + .catch(err => console.error(err)); + + } + + //function to display search bar and search button when clicked or to hide them when clicked on now-playing button + function NowPlaying(event) { + if (event.target.id === "now-playing") { + setnowPlayingButton('active'); + setSearchButton('inactive'); + setdisplaySearchBarButton('hide'); + setSortType(''); + setMovieData([]); + setSearchTerm(''); + handleDiscoverRequest(); } - - - - - - return( -
+ else { + setnowPlayingButton('inactive'); + setSearchButton('active'); + setdisplaySearchBarButton('show'); + setMovieData([]); + setSearchTerm(''); + } + } + //function to fetch data from sort endpoint based on sort + useEffect(() => { + handleDiscoverRequest(); + }, [sortType]); + + //function to move liked movies to the sidebar + const handlesetLikedMovies = (value) => { + setLikedMovies(value); + } + + return ( +
+
+ +
+ +
-

Flixster

- - - - +
+

Flixster

+
+ + + +
+
setSearchData(e.target.value.toLowerCase())}/> - + onChange={(e) => setSearchData(e.target.value.toLowerCase())} /> +
- +
@@ -133,7 +181,7 @@ function App() {
+
) - } -export default App +export default App; diff --git a/src/Modal.css b/src/Modal.css index 6d8145dd..12c56bd7 100644 --- a/src/Modal.css +++ b/src/Modal.css @@ -2,19 +2,27 @@ position: fixed; justify-content: center; align-items: center; - z-index: 1; width: 50%; height: 70%; top: 25%; left: 25%; + z-index: 1; + + + + } .modalContainer{ - padding: 20px; + padding: 10px; border-radius: 10px; width: 100%; - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); + /* background: transparent; */ color: white; border: solid white; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.6); + background-size: 100%; + + } .closeButton{ background: none; @@ -24,9 +32,13 @@ top: 10px; right: 10px; cursor: pointer; + color: red; } .modalContent{ - margin-top: 20px; + margin-top: 10px; + background-color: rgba(255, 255, 255, 0.7); + border: solid white; + } .hide{ @@ -36,5 +48,34 @@ display: flex; } .main-image{ - width: 20% + width: 25%; + border-right: white; +} +.image-video{ + display: flex; +} +.title-of-modal{ + text-align: center; + font-size: 120%; + font-weight: bolder; + color: goldenrod; + background-color: black; + background-position: center; + margin-left: 10%; + margin-right: 10% ; + +} +.over-view{ + font-weight: bold; + margin-top: 2%; + margin-bottom: 2%; + text-wrap: wrap; +} +.youtube{ + width: 100%; + display: flex; +} +.modal-Information{ + background-color: black; + padding: 5%; } diff --git a/src/Modal.jsx b/src/Modal.jsx index e4d10edd..1c86a9a9 100644 --- a/src/Modal.jsx +++ b/src/Modal.jsx @@ -1,24 +1,55 @@ import './Modal.css'; -import React from 'react'; +import React, { useEffect, useState } from 'react'; import MovieCard from './MovieCard'; function Modal(props){ + const [getTrailerKey, setGetTrailerKey] = useState(""); + const apiKey = import.meta.env.VITE_API_KEY; + + //use effect to get the trailer data from the API and find the trailers and their keys + useEffect(()=>{ + const options = { + method: 'GET', + headers: { + accept: 'application/json', + Authorization: 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJhYmRmODZiNWE1YmZkNTNmOGVmZWZhN2NkY2I1MGZhOSIsInN1YiI6IjY2Njg4NzllNmU0MTZkMDlhODhiNzYzOCIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.h4y2UevgrG927Du8ysa-yc4y9k7D3Yh7zDK2TU8eYEE' + } + }; + fetch(`https://api.themoviedb.org/3/movie/${props.data.movieID}/videos?api_key=${apiKey}`, options) + .then(response => response.json()) + .then(response => response.results.find( + (movie)=>movie.site === "YouTube" && movie.type === "Trailer" + )) + .then((movie) => setGetTrailerKey(`https://www.youtube.com/embed/${movie.key}?autoplay=1`)) + .catch(err => console.error(err)); + },[props.data.movieID, apiKey]); return(
-
+
+
Title: {props.data.title}
-
Title: {props.data.title}
- -
Original Title: {props.data.originalTitle}
-
Overview: {props.data.overview}
-
Release Date: {props.data.releaseDate}
-
- +
+
+ + +
+
+
{props.data.overview}
+
Original Title: {props.data.originalTitle}
+
Release Date: {props.data.releaseDate}
+
+
+
+
) diff --git a/src/MovieCard.css b/src/MovieCard.css index ce2206e4..4e0b8d51 100644 --- a/src/MovieCard.css +++ b/src/MovieCard.css @@ -1,20 +1,90 @@ .movie-card{ margin: 2% 0% 2% 2%; border-radius: 10px; - border: solid black; margin-left: auto; margin-right: auto; + width: 17vw; + transition-duration: 0.3s; + box-shadow: 0px 0px 5px 5px rgba(255,255, 255, 0.2); +} - +.movie-card:hover{ + transform: scale(1.1); + cursor: pointer; + background-color: #A9A9A9; } + .movieImage{ width: 100%; display: block; border-top-right-radius: 10px; border-top-left-radius: 10px; - } + p{ text-align: center; text-wrap: wrap; + color: white; +} + +.view-details{ + border-radius: 10px; + margin-bottom: 1%; + margin-left: 1%; + width: 60%; + font-size: 70%; + background-color: blue; +} +.title{ + font-size: 90%; } +.watch-button{ + background: none; + border: none; + font-size: 1em; + cursor: pointer; + color: rgba(255,255, 255, 0.5); + transition: color 0.3s; + color:white; +} +.watch-button.watched{ + color: gold; +} +.heart{ + background: none; + border: none; + font-size: 1em; + cursor: pointer; + color: rgba(255,255, 255, 0.5); + transition: color 0.3s; + color:white; +} +.heart.clicked{ + color: red; +} + +.button { + font-family: "Poppins"; + border-radius: 10px; + width: 94%; + margin: .5vh 1vh; + font-size: 110%; + background-color: rgba(255, 255, 255, 0.2); + border: none; + color: white; + backdrop-filter: blur(5px); + + transition-duration: .5s; + } + .button:hover { + background-color: rgba(255, 82, 122, .6); + + } +/* .movie-card-information{ + box-shadow: inset 0 0 2000px rgba(0, 0, 0, .8); + backdrop-filter: blur(10px); + height: 20%; + border-radius: 0px 0px 20px 20px; +} */ + +/* create a modal and make things work in it */ diff --git a/src/MovieCard.jsx b/src/MovieCard.jsx index f8bfd90a..9d35d338 100644 --- a/src/MovieCard.jsx +++ b/src/MovieCard.jsx @@ -1,12 +1,63 @@ import './MovieCard.css'; -function MovieCard(props){ - - return( -
- Movie Image -

{props.title}

-

{props.rating}

+import React from 'react'; +import { useState } from 'react'; +import Modal from './Modal.jsx'; +// import { faHeart as regularHeart } from '@fortawesome/free-regular-svg-icons'; +// import { faHeart as solidHeart } from '@fortawesome/free-solid-svg-icons'; + +function MovieCard(props) { + const [isModalOpen, setIsModalOpen] = useState(false); + const [liked, setLiked] = useState(false); + const [watched, setWatched] = useState(false); + + function openModal() { + setIsModalOpen(true); + } + function closeModal() { + setIsModalOpen(false); + } + const toggleLike = (event) => { + event.preventDefault(); + props.toggleLikedList(props.isLiked) + } + const likeButton = () =>{ + setLiked(prevState => !prevState); + } + const watchButton = () =>{ + setWatched(prevState => !prevState); + } + + + + + + + + + return ( + <> +
+ Movie Image +
+

{props.title}

+

{props.rating}

+ + + + +
+ +
+
+
+ {isModalOpen && } + + ) } export default MovieCard; diff --git a/src/MovieList.css b/src/MovieList.css index d1f3517c..8ebfc7ea 100644 --- a/src/MovieList.css +++ b/src/MovieList.css @@ -1,6 +1,5 @@ .movieCards{ display: flex; flex-wrap: wrap; - border: solid black; margin-top: 3%; } diff --git a/src/MovieList.jsx b/src/MovieList.jsx index cf9e5998..3eb2b520 100644 --- a/src/MovieList.jsx +++ b/src/MovieList.jsx @@ -1,25 +1,46 @@ import './MovieList.css'; import MovieCard from './MovieCard.jsx'; -function MovieList(props){ - const id = [] +function MovieList(props) { - function createMovieCards(card){ - if(!id.includes(card.id)){ - id.push(card.id); - return( - - ) + const toggleLikeList = (movieID, isRemove) => { + if(isRemove){ + props.handleSetLikedMoviesList((prev) => { + return props.likedMovies.filter((movieDataID) => movieDataID !== movieID); + }) } + else{ + props.handleSetLikedMoviesList((prev) => { + return [...props.likedMoviesList, movieID]; + }); } + } + + function createMovieCards(card, i) { + // if(!id.includes(card.id)){ + // id.push(card.id); + return ( + {toggleLikeList(card.id, isRemove)}} + /> + + ) + } - return( -
- {props.data.map(createMovieCards)} -
+ return ( + <> +
+ {props.data.map((v, i) => createMovieCards(v, i))} +
+ ) } export default MovieList; diff --git a/src/SideBar.css b/src/SideBar.css new file mode 100644 index 00000000..d5bd98cb --- /dev/null +++ b/src/SideBar.css @@ -0,0 +1,7 @@ +.sidebar{ + position: fixed; + height: 100%; + width: 20%; + background-color: rgba(255, 255, 255, .15); + backdrop-filter: blur(5px); + } diff --git a/src/SideBar.jsx b/src/SideBar.jsx new file mode 100644 index 00000000..edb8083c --- /dev/null +++ b/src/SideBar.jsx @@ -0,0 +1,60 @@ +import './SideBar.css' +import { useEffect, useState } from 'react'; +import MovieCard from './MovieCard'; +function SideBar(props){ + const [moviesData, setMoviesData] = useState([]); + const apiKey = import.meta.env.VITE_API_KEY; + + const getMoviesData = async (movieID) => { + const options = { + method: 'GET', + headers: { + accept: 'application/json', + Authorization: 'Bearer' + apiKey + } + }; + const response = await fetch('https://api.themoviedb.org/3/movie/' + movieID ,options); + if (!response.ok) { + console.log(response); + return null; + } + return await response.json(); + } + + const updateMoviesLikedList = async() => { + let likedMovies = []; + for (let i = 0; i < props.likedMoviesInformation.length; i++) { + let movieData = await getMoviesData(props.likedMoviesInformation[i]); + console.log(movieData); + likedMovies.push(movieData); + } + setMoviesData(likedMovies); + } + useEffect(() => { + updateMoviesLikedList(); + }, [props.likedMoviesInformation]); + + return( +
+

Liked Movies:

+ {moviesData.map((props) => { + console.log(moviesData); + return( + {}}/> + ) + + })} + +
+ ) +} +export default SideBar; + +//movieID={card.id} + +//title={card.title} +// diff --git a/src/index.css b/src/index.css index e1faed1a..c241e471 100644 --- a/src/index.css +++ b/src/index.css @@ -1,7 +1,7 @@ body { + font-family: Poppins; margin: 0; - font-family: Arial, sans-serif; - background-color: #f4f4f4; + background-color: #0d0f16; } button { From 24f452ef27ff58989e0d0d05c599d974cbca11db Mon Sep 17 00:00:00 2001 From: Dara Oyedun Date: Fri, 14 Jun 2024 16:53:32 -0700 Subject: [PATCH 6/9] Finally movies project --- Untitled design (3).jpg | Bin 0 -> 145246 bytes src/App.css | 92 ++++++++++------------------------- src/App.jsx | 104 +++++++++++++++++++++++++++++++--------- src/Background.jpg | Bin 0 -> 145246 bytes src/Modal.jsx | 27 +++++++++++ src/MovieCard.css | 6 +-- src/MovieCard.jsx | 22 ++++++--- src/MovieList.jsx | 13 ++--- src/SideBar.css | 19 ++++++++ src/SideBar.jsx | 75 +++++++++++------------------ src/movieImage.png | Bin 10239 -> 0 bytes 11 files changed, 204 insertions(+), 154 deletions(-) create mode 100644 Untitled design (3).jpg create mode 100644 src/Background.jpg delete mode 100644 src/movieImage.png diff --git a/Untitled design (3).jpg b/Untitled design (3).jpg new file mode 100644 index 0000000000000000000000000000000000000000..27cfb2622f6947cbc1b8aa1eac7586c27cfc391f GIT binary patch literal 145246 zcmb@t1z23ovNpN~4?#k3C%F3%TtaYn7$mq1?rsrCCOCn>Kwt~AP@k6?*4$=??8(} zfRjA{sHkuPH~;`(0S`gwe~SKks6d#1edpc%rv5u$c9&=Wn+NSKPmK28{7%srfAJgM z(f=eY07$?FFz#~vfPZj@Wz56A__P2C@e}7(oAzpVc2R;EY zF)==VK|Vo2o;wa6??5*ns{kH1Z>Bp*|1RpOowtpblZTI!yBotF(N@;(zCKcHZ2#o? zN0)4E{@IL&ub0bTjo8}o*}2%c+PV37-vJT$w_e)Xi2FGCxY+$i$K_mn{)6J;^aqK! zi1I{pWVo}K4^ zQ0@lfPl1P(m$#jMpog6lo35R=yRVmx-M_AYzXi&B*;)D6*-8uY3kvh_i|_~tOY;3k z(LX0q^6vtL03Q`wX(1sy5j&g5qCAfu+X?Up3yWCuh}wXyctq{_|0)r-7yWNp|ETgm zBq>_o2?7g(1x3JO0>T21#lWKc|7`!S!v9f4-`&^7@eeF%!GCi8H|@XK|1YNb--qkJ zp#J-?{{J-59{=)I{o6ZxS8zAKLjN|ucQkQ1Umr(zFX^XNURDfRfp)gOZjyZeLjMnJ z|KC^Qoxb?DW%xgo%D=9cJ7)2}7K^)=zPr1Nw7iv@pA`eUuAQ5$otK>#ha}&Ba{S-* z_rDa;fAHL?q<>k=eE(Ew(zo+~Jb;CPiG_)Qg@uWQjg5ta`v4dB-aT9r0z$k8>QlJV3Eh7V&d{o6%>_}RaEu#4GfKpO&~UR>dwK@3F__R>*pU381&-h ztElMLZ(vEu?^06Vr=`O`=H}%W6c!biRM*tjeX4J0Z2H>K+11_C+t)ufJ~25pJu^G^ zePwlRePi>-*7mQ%qvMm)v)|_ze{g{S^nbv*`~2VHBD%wchJk^Of&B*;2+jZQK_|k% zd?bMNP)-Ni%9EH;FcOF4Nn%dbmwQY?x<5&+y+(1#n1#Qy{Q3j!FJ%AEfIa^|LiSH! z|BY)7z(WV!O&&TCAOjrwt>zR^#*6K#ad{dryVVtA6uP7rS)kPHplF>mFLZmn`V|97 zKumL$nwbVZx^d2sC7&eea7dJLLgN_%+w`k#Pfqc?mdhGJo%L591i@q}jpgLzYz2HKsX@#9+d`@ZFVQwk4@+46l;jX2ih;SmhY zwQ6CqWh?s0UC$;f9+ZPnR;@kxkKV7^p;$WG(c|h=?+I!Kje4xQx1up-Egy0*Uf0_r z`&W}q{F8hOFv)1(v9VmLf>04Ll6IF^ZSf=BEd0k6tFm}+yuQ{lnt^oW>4QGRbs?~c z6E*H@V~ero9R(mT-QR8G@=~R9znoC@2rWWWq(m8}1cIH53IuJnF*()st6A?A{gS;0 z6HtQ*$O8Fj5n_b|?|}6!-EJsLF?k(eUgzcs!O4pc8mgo8G}Y!K0cPI8n(@TUR?=x4 z2I*4r5+gEo(FHwgS5o;sQII4wRI+Mfq%zKwWXuEtlcY~trw3YcCZ!Z)sV2M|{X)+a zNjUW9o^#Ma&U}EXVi`US3loxLrIa(jt|wC&PA#cHwKL)yhruJiRlJ@ zXA(G%_>-_OP@uNs1CrhB)OBB0)-R!v7f#GQ!x}>MA0`dBz zcqvWkqpE#Wy>wbTKtWwFp_E)WFAkAQuB9WtE~YOy@Q#=3f<(-kc1n*5nXBCbl6ylB zLT#nOmzjPQ*WtL?8>nQStDV_slYuYTS4umeB_2UzXvn2}PX_+4#jfsm6~0sZhqrtS z{7kGP`!Wl9-PObsx4MFgl$maJTkOFSiO&??6{Z$#kR${CL&68x~0m#FJ+ z&;;>I=Tc`J3>^KwD-FF_Xr%)0rWNcczbVylXjM;50%L6iyU=XgaQ9^?2fl^VO5I`k zVAb{1aRFqT+l<2|5(3G)A6mFi^ND>1FGFIYt=2K^<`<{3t>Bhs?9HdHqv?dbeMSCHbR32APF)&<;|!rLyGO8v&>8+i8i z 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%0D*IL0kjp3QM@R#;-sR+rqM^8 zB@t2EqZK{_ra5QJGIq&Z1B&511GfN(WX8&PB-n5%nZ%VlHSS6N*tyBg&WZea0V⁢rGdZc-ggh7P4wsT4B& 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

Q?*LqBQ)_l;ej$!~mM*jdBe|^3C53MbT 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 eM1d^s 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

wbo>o%5Dy}OW`HD(pi2coK%0h!wCzN2& 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 literal 0 HcmV?d00001 diff --git a/src/App.css b/src/App.css index c38ca76c..b5491426 100644 --- a/src/App.css +++ b/src/App.css @@ -1,41 +1,7 @@ -.App { - text-align: center; - -} - -.App-header { - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-evenly; - background-color: transparent; - padding: 20px; -} - -@media (max-width: 600px) { - .movie-card { - width: 100%; - } - - .search-bar { - flex-direction: column; - gap: 10px; - } - - .search-bar form { - flex-direction: column; - } -} -header{ - display: inline; - -} .title-header{ text-align: center; - color: white; - padding-left: 50%; padding-right: auto; - /* apply box shadow here */ + color: white; } .loadMoreButton{ padding: 10px 20px; @@ -46,15 +12,15 @@ header{ color: black } footer{ - display: flex; - flex-direction: column; - position: relative; + display: inline-block; + /* position: fixed; */ + margin-left: 50%; left: 0; bottom: 0; - width: 100%; - height: 10%; + margin-right: 50%; + width: 200px; + height: 50px; background-color:black; - border: solid white; } .button{ margin-left: auto; @@ -66,6 +32,9 @@ footer{ .body{ background-color: #0d0f16; margin-left: 20%; + display: inline-flex; + flex-wrap: wrap; + flex-direction: row; } .hide{ display: none; @@ -73,27 +42,14 @@ footer{ .show{ display: flex; } -.header{ - display: flex; - justify-content: space-between; - align-items: center; - padding: 10px 20px; -} .nav-bar{ list-style: none; margin: 0; padding: 0; display: flex; - background-color: rgba(255, 255, 255, .15); backdrop-filter: blur(5px); } -@media (max-width: 768px){ - .header{ - flex-direction: column; - align-items: center; - } -} .whole-body{ background-color: #0d0f16; } @@ -101,26 +57,26 @@ footer{ .button { font-family: "Poppins"; border-radius: 10px; - padding: 1vh; font-size: 110%; - background-color: rgba(255, 82, 122, 0.8); border: none; - color: white; - backdrop-filter: blur(5px); - - transition-duration: .5s; } .button:hover { background-color: rgba(255, 82, 122, .6); } - -.navigation-bar { +.load-more{ + margin-left: 10%; + margin-right: 10%; + align-items: center; display: flex; - gap: 1%; - width: 33%; - padding: 2vh 2vh; - background-color: rgba(255, 255, 255, 0.2); - backdrop-filter: blur(5px); - border-radius: 10px; + flex-direction: column; +} +header { + font-family: Arial, sans-serif; + font-size: 20px; + color: #333; + background-image: url('/src/Background.jpg'); + width: 100%; + border-bottom: 1px solid #ccc; + height:100% } diff --git a/src/App.jsx b/src/App.jsx index 3b74deb6..818986cd 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -3,6 +3,7 @@ import './App.css' import MovieList from './MovieList.jsx'; import SideBar from './SideBar'; + function App() { //state variable to store movie data const [movies, setMovieData] = useState([]); @@ -33,9 +34,17 @@ function App() { //state variable to store search data const [searchTerm, setSearchTerm] = useState(''); - //state variable to store side-bar information + //state variable to liked movies information const [likedMovies, setLikedMovies] = useState([]); + //state variable to store watched movies information + const [watchedMovies, setWatchedMovies] = useState([]); + + //state variable to store genre type + const [genreType, setGenreType] = useState(''); + + + //function to choose what to display on the page. If it's now playing, it will fetch the data from now-playing endpoint. // If sort button is clicked, then it'll fetch the data from sort endpoint @@ -45,6 +54,9 @@ function App() { if (sortType != "") { fetchURL += '&sort_by=' + sortType; } + // if (genreType != "") { + // fetchURL += '&with_genres=' + genreType; + // } setMovieData([]); setPageNumber(1); const response = await fetch(fetchURL); @@ -52,6 +64,7 @@ function App() { setMovieData(data.results); } else { + setMovieData([]); setFetchBetweenTabs('search-results'); } } @@ -66,6 +79,9 @@ function App() { if (sortType != "") { fetchURL += '&sort_by=' + sortType; } + // if (genreType != "") { + // fetchURL += '&with_genres=' + genreType; + // } fetchURL += '&page=' + pageNumber; const response = await fetch(fetchURL); const data = await response.json(); @@ -77,11 +93,12 @@ function App() { } //useEffect to fetch if the tab is now playing or search + useEffect(() => { if (fetchBetweenTabs === 'now-playing-home' && searchTerm === '') { fetchNewPageMovieData() } - else { + else{ searchDataValue(searchTerm); } }, [pageNumber, searchTerm]); @@ -102,7 +119,7 @@ function App() { }; fetch(`https://api.themoviedb.org/3/search/movie?query=${searchData}&include_adult=false&language=en-US&page=${pageNumber}`, options) .then(response => response.json()) - .then(response => setMovieData((response.results))) + .then(response => setMovieData(movies.concat(response.results))) .catch(err => console.error(err)); } @@ -114,6 +131,7 @@ function App() { setSearchButton('inactive'); setdisplaySearchBarButton('hide'); setSortType(''); + setGenreType('') setMovieData([]); setSearchTerm(''); handleDiscoverRequest(); @@ -132,31 +150,73 @@ function App() { }, [sortType]); //function to move liked movies to the sidebar - const handlesetLikedMovies = (value) => { - setLikedMovies(value); + function handlesetLikedMovies(movieID){ + if(likedMovies.includes(movieID)){ + setLikedMovies(previousIDs => previousIDs.filter(previousID => previousID !== movieID)); + } + else{ + setLikedMovies(previousID => [...previousID, movieID]); + } } + //function to move watched movies to the sidebar + function handlesetWatchedMovies(movieID){ + if(watchedMovies.includes(movieID)){ + setWatchedMovies(previousIDs => previousIDs.filter(previousID => previousID !== movieID)); + } + else{ + setWatchedMovies(previousID => [...previousID, movieID]); + } + } + + //dictionary of genre IDS to their corresponding names + const Genres = { + 28:"Action", + 12:"Adventure", + 16:"Animation", + 35:"Comedy", + 80:"Crime", + 99:"Documentary", + 18:"Drama", + 10751:"Family", + 14:"Fantasy", + 36:"History", + 27:"Horror", + 10402:"Music", + 9648:"Mystery", + 10749:"Romance", + 878:"Science Fiction", + 10770:"TV Movie", + 53:"Thriller", + 10752:"War", + 37:"Western", + } + + + return (

- +
-
-

Flixster

-
- - - -
+
+
+

Flixster

+
+ + + +
+
setSearchData(e.target.value.toLowerCase())} /> - +
- +