29 lines
783 B
TypeScript
29 lines
783 B
TypeScript
import { NormalizedCacheObject } from '@apollo/client';
|
|
import { initializeApollo } from 'apollo/client';
|
|
import type { GetServerSideProps, NextPage } from 'next';
|
|
import { fetchUser } from 'services/user';
|
|
import type { User } from 'services/user/types';
|
|
|
|
interface PageProps {
|
|
user: User;
|
|
initialApolloState: NormalizedCacheObject;
|
|
}
|
|
|
|
const Home: NextPage<PageProps> = () => {
|
|
return <div>Home</div>;
|
|
};
|
|
|
|
export const getServerSideProps: GetServerSideProps<PageProps> = async ctx => {
|
|
const user = await fetchUser({
|
|
headers: ctx?.req?.headers?.cookie
|
|
? { cookie: ctx.req.headers.cookie }
|
|
: undefined,
|
|
});
|
|
|
|
const apolloClient = initializeApollo();
|
|
|
|
return { props: { user, initialApolloState: apolloClient.cache.extract() } };
|
|
};
|
|
|
|
export default Home;
|