a0fa66e8f5
Co-authored-by: Walid <87608619+WalidKorchi@users.noreply.github.com>
54 lines
1.3 KiB
TypeScript
54 lines
1.3 KiB
TypeScript
import { Head } from 'components/Head'
|
|
import { Application } from 'components/Application'
|
|
import { Messages } from 'components/Application/Messages'
|
|
import {
|
|
authenticationFromServerSide,
|
|
AuthenticationProvider,
|
|
PagePropsWithAuthentication
|
|
} from 'utils/authentication'
|
|
|
|
export interface ChannelPageProps extends PagePropsWithAuthentication {
|
|
channelId: number
|
|
guildId: number
|
|
}
|
|
|
|
const ChannelPage: React.FC<ChannelPageProps> = (props) => {
|
|
const { channelId, guildId, authentication } = props
|
|
|
|
return (
|
|
<AuthenticationProvider authentication={authentication}>
|
|
<Head title='Thream | Application' />
|
|
<Application
|
|
path={{
|
|
channelId,
|
|
guildId
|
|
}}
|
|
>
|
|
<Messages />
|
|
</Application>
|
|
</AuthenticationProvider>
|
|
)
|
|
}
|
|
|
|
export const getServerSideProps = authenticationFromServerSide({
|
|
shouldBeAuthenticated: true,
|
|
fetchData: async (context) => {
|
|
const channelId = Number(context?.params?.channelId)
|
|
const guildId = Number(context?.params?.guildId)
|
|
if (isNaN(channelId) || isNaN(guildId)) {
|
|
return {
|
|
redirect: {
|
|
destination: '/application',
|
|
permanent: false
|
|
}
|
|
}
|
|
}
|
|
return {
|
|
channelId,
|
|
guildId
|
|
}
|
|
}
|
|
})
|
|
|
|
export default ChannelPage
|