feat(frontend/api): tv details page

This commit is contained in:
sct
2020-09-20 14:09:40 +09:00
parent 8f21358f79
commit 02cbb5b030
12 changed files with 953 additions and 51 deletions

View File

@@ -0,0 +1,38 @@
import React from 'react';
import { NextPage } from 'next';
import axios from 'axios';
import { parseCookies } from 'nookies';
import TvDetails from '../../../components/TvDetails';
import type { TvDetails as TvDetailsType } from '../../../../server/models/Tv';
interface TvPageProps {
tv?: TvDetailsType;
}
const TvPage: NextPage<TvPageProps> = ({ tv }) => {
return <TvDetails tv={tv} />;
};
TvPage.getInitialProps = async (ctx) => {
if (ctx.req) {
const cookies = parseCookies(ctx);
const response = await axios.get<TvDetailsType>(
`http://localhost:${process.env.PORT || 3000}/api/v1/tv/${
ctx.query.tvId
}${cookies.locale ? `?language=${cookies.locale}` : ''}`,
{
headers: ctx.req?.headers?.cookie
? { cookie: ctx.req.headers.cookie }
: undefined,
}
);
return {
tv: response.data,
};
}
return {};
};
export default TvPage;

View File

@@ -0,0 +1,9 @@
import React from 'react';
import { NextPage } from 'next';
import TvRecommendations from '../../../components/TvDetails/TvRecommendations';
const TvRecommendationsPage: NextPage = () => {
return <TvRecommendations />;
};
export default TvRecommendationsPage;

View File

@@ -0,0 +1,9 @@
import React from 'react';
import { NextPage } from 'next';
import TvSimilar from '../../../components/TvDetails/TvSimilar';
const TvSimilarPage: NextPage = () => {
return <TvSimilar />;
};
export default TvSimilarPage;