index.tsx40 lines · main
1import { useParams } from 'common'
2import { useRouter } from 'next/router'
3import { useEffect } from 'react'
4import { PageContainer } from 'ui-patterns/PageContainer'
5import { PageSection, PageSectionContent } from 'ui-patterns/PageSection'
6import { GenericSkeletonLoader } from 'ui-patterns/ShimmeringLoader'
7
8import { DefaultLayout } from '@/components/layouts/DefaultLayout'
9import { ProjectIntegrationsLayoutDispatch } from '@/components/layouts/ProjectIntegrationsLayoutDispatch'
10import type { NextPageWithLayout } from '@/types'
11
12const IntegrationPage: NextPageWithLayout = () => {
13 const router = useRouter()
14 const { ref, id } = useParams()
15
16 useEffect(() => {
17 // Always redirect to the overview page since this route should not render content
18 if (router?.isReady) {
19 router.replace(`/project/${ref}/integrations/${id}/overview`)
20 }
21 }, [router, ref, id])
22
23 return (
24 <PageContainer size="full">
25 <PageSection>
26 <PageSectionContent>
27 <GenericSkeletonLoader />
28 </PageSectionContent>
29 </PageSection>
30 </PageContainer>
31 )
32}
33
34IntegrationPage.getLayout = (page) => (
35 <DefaultLayout>
36 <ProjectIntegrationsLayoutDispatch>{page}</ProjectIntegrationsLayoutDispatch>
37 </DefaultLayout>
38)
39
40export default IntegrationPage