import type { NextPage } from 'next' import { Head } from '../../../../components/Head' import { Application } from '../../../../components/Application' import type { PagePropsWithAuthentication } from '../../../../tools/authentication' import { authenticationFromServerSide, AuthenticationProvider } from '../../../../tools/authentication' import { UserProfile } from '../../../../components/Application/UserProfile' import { GuildsProvider } from '../../../../contexts/Guilds' import type { UserPublic } from '../../../../models/User' import type { 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 (Number.isNaN(userId)) { return { notFound: true } } const { data } = await api.get(`/users/${userId}`) return { user: data.user, guilds: data.guilds } } }) export default UserProfilePage