import type { NextPage } from "next" import { Head } from "../../../../components/Head" import { Application } from "../../../../components/Application" import { Messages } from "../../../../components/Application/Messages" import { SendMessage } from "../../../../components/Application/SendMessage" import type { PagePropsWithAuthentication } from "../../../../tools/authentication" import { authenticationFromServerSide, AuthenticationProvider, } from "../../../../tools/authentication" import type { GuildMember } from "../../../../contexts/GuildMember" import { GuildMemberProvider } from "../../../../contexts/GuildMember" import { GuildLeftSidebar } from "../../../../components/Application/GuildLeftSidebar" import { ChannelsProvider } from "../../../../contexts/Channels" import { GuildsProvider } from "../../../../contexts/Guilds" import type { Channel } from "../../../../models/Channel" import { MessagesProvider } from "../../../../contexts/Messages" import { MembersProviders } from "../../../../contexts/Members" export interface ChannelPageProps extends PagePropsWithAuthentication { channelId: number guildId: number guildMember: GuildMember selectedChannel: Channel } const ChannelPage: NextPage = (props) => { const { channelId, guildId, authentication, guildMember, selectedChannel } = props const path = { channelId, guildId, } return ( } title={`# ${selectedChannel.name}`} > ) } export const getServerSideProps = authenticationFromServerSide({ shouldBeAuthenticated: true, fetchData: async (context, api) => { const channelId = Number(context?.params?.["channelId"]) const guildId = Number(context?.params?.["guildId"]) if (Number.isNaN(channelId) || Number.isNaN(guildId)) { return { notFound: true, } } const { data: guildMember } = await api.get(`/guilds/${guildId}`) const { data: selectedChannelData } = await api.get( `/channels/${channelId}`, ) return { channelId, guildId, guildMember, selectedChannel: selectedChannelData.channel, } }, }) export default ChannelPage