import { NextPage } from 'next' import { Head } from 'components/Head' import { Application } from 'components/Application' import { authenticationFromServerSide, AuthenticationProvider, PagePropsWithAuthentication } from 'tools/authentication' import { UserProfile } from 'components/Application/UserProfile' import { GuildsProvider } from 'contexts/Guilds' import { UserPublic } from 'models/User' import { Guild } from 'models/Guild' export interface UserProfilePageProps extends PagePropsWithAuthentication { user: UserPublic guilds: Guild[] } const UserProfilePage: NextPage = (props) => { const { user, guilds, authentication } = props return ( ) } export const getServerSideProps = authenticationFromServerSide({ shouldBeAuthenticated: true, fetchData: async (context, api) => { const userId = Number(context?.params?.userId) if (isNaN(userId)) { return { redirect: { destination: '/404', permanent: false } } } const { data } = await api.get(`/users/${userId}`) return { user: data.user, guilds: data.guilds } } }) export default UserProfilePage