diff --git a/.env.example b/.env.example deleted file mode 100644 index 711fab6..0000000 --- a/.env.example +++ /dev/null @@ -1,7 +0,0 @@ -API_KEY = -REACT_APP_OFFSET_LIVE_CHAT = -REACT_APP_YOUTUBE_VIDEOS_API = "https://youtube.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails%2Cstatistics&chart=mostPopular®ionCode=US&key=[YOUR_API_KEY]" -REACT_APP_YOUTUBE_VIDEO_API = "https://youtube.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails%2Cstatistics&id=Ks-_Mh1QhMc&key=[YOUR_API_KEY]" -REACT_APP_YOUTUBE_SEARCH_SUGGESTIONS_API = "http://suggestqueries.google.com/complete/search?client=firefox&ds=yt&q=Query" -REACT_APP_YOUTUBE_CHANNEL_API = "https://youtube.googleapis.com/youtube/v3/channels?part=snippet%2CcontentDetails%2Cstatistics&id=UC_x5XG1OV2P6uZZ5FSM9Ttw&key=[YOUR_API_KEY]" -REACT_APP_YOUTUBE_SEARCH_API = "https://youtube.googleapis.com/youtube/v3/search?part=snippet&maxResults=25&q=surfing&key=[YOUR_API_KEY]" \ No newline at end of file diff --git a/src/components/ErrorPage.js b/src/components/ErrorPage.js index f8f990d..304bdc2 100644 --- a/src/components/ErrorPage.js +++ b/src/components/ErrorPage.js @@ -2,13 +2,9 @@ import React from "react"; const ErrorPage = ({ error }) => { return ( -
-
-

- {error.code} error -

-

{error.message}

-
+
+

{error.code} error

+

{error.message}

); }; diff --git a/src/constants/constants.js b/src/constants/constants.js new file mode 100644 index 0000000..488fa43 --- /dev/null +++ b/src/constants/constants.js @@ -0,0 +1,26 @@ +export const OFFSET_LIVE_CHAT = 20; + +export const OFFSET_SCROLL = 15; + +export const YOUTUBE_VIDEOS_API = + "https://youtube.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails%2Cstatistics&chart=mostPopular&maxResults=6&pageToken=%PAGE_TOKEN%®ionCode=IN&key=" + + process.env.REACT_APP_API_KEY; + +export const YOUTUBE_SUGGESTED_VIDEOS_API = + "https://youtube.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails%2Cstatistics&chart=mostPopular&maxResults=25®ionCode=IN&key=" + + process.env.REACT_APP_API_KEY; + +export const YOUTUBE_VIDEO_API = + "https://youtube.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails%2Cstatistics&id=%VIDEO_ID%&key=" + + process.env.REACT_APP_API_KEY; + +export const YOUTUBE_SEARCH_SUGGESTIONS_API = + "http://suggestqueries.google.com/complete/search?client=firefox&ds=yt&q="; + +export const YOUTUBE_CHANNEL_API = + "https://youtube.googleapis.com/youtube/v3/channels?part=snippet%2CcontentDetails%2Cstatistics&id=%CHANNEL_ID%&key=" + + process.env.REACT_APP_API_KEY; + +export const YOUTUBE_SEARCH_API = + "https://youtube.googleapis.com/youtube/v3/search?part=snippet&maxResults=25&q=%QUERY%&key=" + + process.env.REACT_APP_API_KEY; diff --git a/src/fetchData/getChannelData.js b/src/fetchData/getChannelData.js index ef049aa..a6f000c 100644 --- a/src/fetchData/getChannelData.js +++ b/src/fetchData/getChannelData.js @@ -1,8 +1,7 @@ +import { YOUTUBE_CHANNEL_API } from "../constants/constants"; + export const getChannelData = async (channelId, setChannelData) => { - const API = process.env.REACT_APP_YOUTUBE_CHANNEL_API.replace( - "%CHANNEL_ID%", - channelId - ); + const API = YOUTUBE_CHANNEL_API.replace("%CHANNEL_ID%", channelId); try { const data = await fetch(API); diff --git a/src/fetchData/getSearchResults.js b/src/fetchData/getSearchResults.js index 3a21666..4d38e7f 100644 --- a/src/fetchData/getSearchResults.js +++ b/src/fetchData/getSearchResults.js @@ -1,8 +1,7 @@ +import { YOUTUBE_SEARCH_API } from "../constants/constants"; + export const getSearchResults = async (query, setSearchResults) => { - const API = process.env.REACT_APP_YOUTUBE_SEARCH_API.replaceAll( - "%QUERY%", - query - ); + const API = YOUTUBE_SEARCH_API.replaceAll("%QUERY%", query); try { const data = await fetch(API); diff --git a/src/fetchData/getVideo.js b/src/fetchData/getVideo.js index bbe491c..db75030 100644 --- a/src/fetchData/getVideo.js +++ b/src/fetchData/getVideo.js @@ -1,8 +1,7 @@ +import { YOUTUBE_VIDEO_API } from "../constants/constants"; + export const getVideo = async (videoId, setVideo) => { - const API = process.env.REACT_APP_YOUTUBE_VIDEO_API.replace( - "%VIDEO_ID%", - videoId - ); + const API = YOUTUBE_VIDEO_API.replace("%VIDEO_ID%", videoId); try { const data = await fetch(API); const json = await data.json(); diff --git a/src/fetchData/getVideos.js b/src/fetchData/getVideos.js index 3df4fe2..324f385 100644 --- a/src/fetchData/getVideos.js +++ b/src/fetchData/getVideos.js @@ -1,5 +1,7 @@ +import { YOUTUBE_SUGGESTED_VIDEOS_API } from "../constants/constants"; + export const getVideos = async (setVideosList) => { - const API = process.env.REACT_APP_YOUTUBE_VIDEOS_API; + const API = YOUTUBE_SUGGESTED_VIDEOS_API; try { const data = await fetch(API); const json = await data.json(); diff --git a/src/pages/Home.js b/src/pages/Home.js index 5614bc1..1e5ea0d 100644 --- a/src/pages/Home.js +++ b/src/pages/Home.js @@ -5,6 +5,7 @@ import { Link } from "react-router-dom"; import { useDispatch, useSelector } from "react-redux"; import SearchButtons from "../components/SearchButtons"; import { addVideosList } from "../redux/scrollSlice"; +import { YOUTUBE_VIDEOS_API } from "../constants/constants"; const Home = () => { const dispatch = useDispatch(); @@ -43,10 +44,7 @@ const Home = () => { const getVideos = async (pageToken) => { try { - const API = process.env.REACT_APP_YOUTUBE_VIDEOS_API.replace( - "%PAGE_TOKEN%", - pageToken - ); + const API = YOUTUBE_VIDEOS_API.replace("%PAGE_TOKEN%", pageToken); const data = await fetch(API); const json = await data.json(); dispatch(addVideosList(json)); diff --git a/src/pages/WatchVideo.js b/src/pages/WatchVideo.js index 727c14d..5ce4710 100644 --- a/src/pages/WatchVideo.js +++ b/src/pages/WatchVideo.js @@ -10,6 +10,7 @@ import Channel from "../components/Channel"; import CommentsList from "../components/CommentsList"; import commentsDummyData from "../constants/commentsDummyData"; import LiveChat from "../components/LiveChat"; +import ErrorPage from "../components/ErrorPage"; const WatchVideo = () => { const dispatch = useDispatch(); @@ -25,8 +26,6 @@ const WatchVideo = () => { }); }; - const suggestedVideos = videosList.filter((videos) => videos.id !== videoId); - useEffect(() => { dispatch(closeWatchMenu()); getVideos(setVideosList); @@ -34,61 +33,77 @@ const WatchVideo = () => { // eslint-disable-next-line }, []); + // if (videosList.length !== 0) { + // var suggestedVideos = videosList.filter((videos) => videos.id !== videoId); + // } + + console.log("videosList", videosList); + return ( -
-
-
- - {video !== null && ( - <> -
- {video?.snippet?.title} -
+ <> + {videosList.error ? ( + + ) : ( +
+
+
+ + {video !== null && ( + <> +
+ {video?.snippet?.title} +
-
- - -
- - )} -

Comments:

- -
-
-
- -
-
- +
+ + +
+ + )} +

Comments:

+ +
-
-
-
- {suggestedVideos.map((videos) => { - return ( - - - - ); - })} +
+ +
+
+ +
+
+
+ {videosList.length !== 0 && ( +
+ {videosList + .filter((videos) => videos.id !== videoId) + .map((videos) => { + return ( + + + + ); + })} +
+ )} +
-
-
+ )} + ); };