import { NextPage } from 'next' import { Head } from '../../../../components/Head' import { Application } from '../../../../components/Application' import { authenticationFromServerSide, AuthenticationProvider, PagePropsWithAuthentication } from '../../../../tools/authentication' import { GuildMember, 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 { 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 (isNaN(channelId) || isNaN(guildId)) { return { redirect: { destination: '/404', permanent: false } } } const { data: guildMember } = await api.get( `/guilds/${guildId}` ) if (!guildMember.member.isOwner) { return { redirect: { destination: '/404', permanent: false } } } const { data: selectedChannelData } = await api.get( `/channels/${channelId}` ) return { channelId, guildId, guildMember, selectedChannel: selectedChannelData.channel } } }) export default ChannelSettingsPage