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 type { GuildMember } from '../../../../contexts/GuildMember' import { GuildMemberProvider } from '../../../../contexts/GuildMember' import { GuildLeftSidebar } from '../../../../components/Application/GuildLeftSidebar' import { ChannelSettings } from '../../../../components/Application/ChannelSettings' import { ChannelsProvider } from '../../../../contexts/Channels' import { GuildsProvider } from '../../../../contexts/Guilds' import type { Channel } from '../../../../models/Channel' import { MembersProviders } from '../../../../contexts/Members' export interface ChannelSettingsPageProps extends PagePropsWithAuthentication { channelId: number guildId: number guildMember: GuildMember selectedChannel: Channel } const ChannelSettingsPage: 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}` ) if (!guildMember.member.isOwner) { return { notFound: true } } const { data: selectedChannelData } = await api.get( `/channels/${channelId}` ) return { channelId, guildId, guildMember, selectedChannel: selectedChannelData.channel } } }) export default ChannelSettingsPage