diff --git a/assets/images/new_card.png b/assets/images/new_card.png new file mode 100644 index 0000000..151af64 Binary files /dev/null and b/assets/images/new_card.png differ diff --git a/assets/images/suggested_card.png b/assets/images/suggested_card.png new file mode 100644 index 0000000..b11ce6a Binary files /dev/null and b/assets/images/suggested_card.png differ diff --git a/components/HeaderMovieComponent.tsx b/components/HeaderMovieComponent.tsx index f154c4a..c37c308 100644 --- a/components/HeaderMovieComponent.tsx +++ b/components/HeaderMovieComponent.tsx @@ -19,7 +19,7 @@ export function HeaderMovie(props: headerMovieProps) { borderRadius: 100 / 2, marginTop: 4, backgroundColor: "lightgray", - marginHorizontal: 8 + marginHorizontal: 8, }, }); diff --git a/components/cards.tsx b/components/cards.tsx new file mode 100644 index 0000000..3949665 --- /dev/null +++ b/components/cards.tsx @@ -0,0 +1,27 @@ +import {Image, View} from "react-native"; +import * as React from "react"; + +export function SuggestedCard() { + + + return ( + + + + + ); +} + +export function NewCard() { + + + return ( + + + + ); +} \ No newline at end of file diff --git a/model/Movie.tsx b/model/Movie.tsx index 4104c8e..c9aa89a 100644 --- a/model/Movie.tsx +++ b/model/Movie.tsx @@ -13,6 +13,8 @@ class Movie { public backdrop_path: string + public full_date; + constructor(id: number, original_title: string, poster_path: string, runtime: number, vote_average: number, release_date: string, genres: string[], overview: string, backdrop_path: string) { this.id = id; @@ -21,6 +23,7 @@ class Movie { this.poster_path_min = 'https://image.tmdb.org/t/p/w185' + poster_path; this.runtime = runtime; this.release_date = release_date.substring(0, 4); + this.full_date = release_date; this.genres = genres; this.overview = overview; this.vote_average = vote_average; diff --git a/model/review.tsx b/model/review.tsx index fd86214..23a5825 100644 --- a/model/review.tsx +++ b/model/review.tsx @@ -17,7 +17,6 @@ class Review { } else { this.profile_path = 'https://image.tmdb.org/t/p/w185' + profile_path; } - console.log("profil_path", this.profile_path) this.date = date.substring(0, 10); this.pseudo = pseudo; diff --git a/screens/HomeScreen.tsx b/screens/HomeScreen.tsx index 9c572db..bb2cb73 100644 --- a/screens/HomeScreen.tsx +++ b/screens/HomeScreen.tsx @@ -11,6 +11,9 @@ import CardsSwipe from 'react-native-cards-swipe'; import AnimatedLottieView from "lottie-react-native"; import {Timer, Timer2} from "../components/TimerComponent"; import {HeaderMovie} from "../components/HeaderMovieComponent"; +import config from "../constants/config.js"; +import * as https from "https"; +import {NewCard, SuggestedCard} from "../components/cards"; export default function HomeScreen({navigation}: RootStackScreenProps<'Home'>) { // @ts-ignore @@ -21,6 +24,7 @@ export default function HomeScreen({navigation}: RootStackScreenProps<'Home'>) { const [minutes, setMinutes] = useState(0); const [seconds, setSeconds] = useState(0); const [displayIndex, setdisplayIndex] = useState(0); + const [suggestedMovies, setSuggestedMovies] = useState([]); var swiper: any = null; @@ -151,12 +155,27 @@ export default function HomeScreen({navigation}: RootStackScreenProps<'Home'>) { setSeconds(s); }); - setTimeout(() => interval, 10000); + getSuggested(); }, []); + + const getSuggested = async () => { + const suggestedResponse = (await fetch("https://codefirst.iut.uca.fr/containers/lucasdelanier-containermoviefinder/api/Suggested")); + const suggestedJson = await suggestedResponse.json(); + //console.log("trailer", trailerJson) + // @ts-ignore + const suggestedMovies = suggestedJson.map((element) => { + return element; + + }) + console.log("suggested", suggestedMovies) + setSuggestedMovies(suggestedMovies); + } + function addWatchLater(props: Movie) { dispatch(addMovieToWatchLater(props)); dispatch(removeMovieTrending(props)); + console.log("movie: ", props.id, props.full_date, new Date(props.full_date).getTime()), new Date(trendingMovies[displayIndex].full_date).getTime(); if (displayIndex == trendingMovies.length - 1) { setdisplayIndex(0); swiper.swipeLeft(); @@ -204,6 +223,7 @@ export default function HomeScreen({navigation}: RootStackScreenProps<'Home'>) { > + { swiper = rf @@ -229,12 +249,21 @@ export default function HomeScreen({navigation}: RootStackScreenProps<'Home'>) { renderCard={(card) => ( - ) + <> + + {suggestedMovies.includes(trendingMovies[displayIndex].id) && ()} + {(new Date().setDate(new Date().getDate() - 14) < new Date(trendingMovies[displayIndex].full_date).getTime()) && ()} + + + + + + ) } /> diff --git a/screens/InfoScreen.tsx b/screens/InfoScreen.tsx index ff45d20..9d7ac72 100644 --- a/screens/InfoScreen.tsx +++ b/screens/InfoScreen.tsx @@ -365,7 +365,6 @@ export default function InfoScreen({navigation, route}: RootStackScreenProps<'In } const getReview = async () => { const ReviewResponse = (await fetch(config.base_url + "movie/" + item.id + "/reviews?api_key=" + config.api_key + "&language=us-EN&page=1")); - const ReviewJson = await ReviewResponse.json(); // @ts-ignore let ReviewList = ReviewJson.results.slice(0, 5).map((elt) => {