import React, {useContext} from 'react'; import PropTypes from 'prop-types'; import axios from 'axios'; import config from '../config.json'; import { BrowserRouter as Router, Route, NavLink, Link } from 'react-router-dom'; import { AuthContext } from '../context/Auth.context.jsx'; import { Container, Divider, Card, Placeholder, Button, Icon, Rating } from 'semantic-ui-react' import MovieCardImage from './MovieCardImage' import RecommendedMovieList from './RecommendationMovieList'; // 영화 상세 페이지 function MovieDetails({ id, locationState }) { const { state: ContextState, login } = useContext(AuthContext); const { isLoginPending, isLoggedIn, loginError, username, userId } = ContextState; const [movie, setMovie] = React.useState({}); const [loading, setLoading] = React.useState(true); const [recommendedMovies, setRecommendedMovies] = React.useState([]); const [recommendedMovies2, setRecommendedMovies2] = React.useState([]); // const { state } = useContext(AuthContext); // config.ApiUrl need to be updated during Frontend set up lab. const config_api_url = config.ApiUrl; // Fetch a movie data for specific movie id from Movie Table in DynamoDB (GET) const get_a_movie_url = `${config_api_url}/movie` const a_movie_api = `${get_a_movie_url}/${id}` React.useEffect(() => { async function loadDealInfo() { const response = await axios.get( a_movie_api, ); console.log((response.data)); setMovie((response.data)) setLoading(false); document.title = `${response.data.name} - DemoGo Prime`; }; loadDealInfo(); return () => { setMovie({}); setLoading(true); }; }, [id, locationState]); // call personalizeProcessingFunction function to make use of Amazon Personalize Campaign endpoint const get_realtime_recommendation = `${config_api_url}/recommendation` const realtime_api = `${get_realtime_recommendation}/${userId}` React.useEffect(() => { async function fetchData () { const response = await axios.get( realtime_api,); console.log((response.data)['movies']); // console.log("state.username:",username) setRecommendedMovies((response.data)['movies']) } fetchData(); // call batchRecommendationProcessingFunction function const get_batch_recommendation = `${config_api_url}/recommendation/batch` const batch_api = `${get_batch_recommendation}/${userId}` async function fetchData2 () { const response = await axios.get( batch_api,); console.log("batch", (response.data)['movies']); // console.log("state.username:",username) setRecommendedMovies2((response.data)['movies']) } fetchData2(); }, []); return ( Back to Movie list ); }; MovieDetails.propTypes = { id: PropTypes.string, locationState: PropTypes.object }; export default MovieDetails;