@@ -11,6 +11,7 @@ import {Home} from 'sentry-docs/components/home';
1111import { Include } from 'sentry-docs/components/include' ;
1212import { PlatformContent } from 'sentry-docs/components/platformContent' ;
1313import {
14+ DocNode ,
1415 getCurrentPlatformOrGuide ,
1516 getDocsRootNode ,
1617 getNextNode ,
@@ -26,6 +27,7 @@ import {
2627} from 'sentry-docs/mdx' ;
2728import { mdxComponents } from 'sentry-docs/mdxComponents' ;
2829import { setServerContext } from 'sentry-docs/serverContext' ;
30+ import { PaginationNavNode } from 'sentry-docs/types/paginationNavNode' ;
2931import { stripVersion } from 'sentry-docs/versioning' ;
3032
3133export async function generateStaticParams ( ) {
@@ -78,25 +80,28 @@ export default async function Page({params}: {params: {path?: string[]}}) {
7880 }
7981
8082 // gather previous and next page that will be displayed in the bottom pagination
81- let previousPage = pageNode ?. frontmatter ?. previousPage ;
82- let nextPage = pageNode ?. frontmatter ?. nextPage ;
83-
84- if ( ! nextPage || ! ( 'path' in nextPage ) || ! ( 'title' in nextPage ) ) {
85- const nextNode = pageNode ? getNextNode ( pageNode ) : undefined ;
86- nextPage = nextNode
87- ? { path : nextNode . path , title : nextNode . frontmatter . title }
88- : undefined ;
89- }
83+ const getPaginationDetails = (
84+ getNode : ( node : DocNode ) => DocNode | undefined | 'root' ,
85+ page : PaginationNavNode | undefined
86+ ) => {
87+ if ( page && 'path' in page && 'title' in page ) {
88+ return page ;
89+ }
9090
91- if ( ! previousPage || ! ( 'path' in previousPage ) || ! ( 'title' in previousPage ) ) {
92- const previousNode = pageNode ? getPreviousNode ( pageNode ) : undefined ;
93- previousPage =
94- previousNode === 'root'
95- ? { path : '' , title : 'Welcome to Sentry' }
96- : previousNode
97- ? { path : previousNode . path , title : previousNode . frontmatter . title }
98- : undefined ;
99- }
91+ const node = getNode ( pageNode ) ;
92+
93+ if ( node === 'root' ) {
94+ return { path : '' , title : 'Welcome to Sentry' } ;
95+ }
96+
97+ return node ? { path : node . path , title : node . frontmatter . title } : undefined ;
98+ } ;
99+
100+ const previousPage = getPaginationDetails (
101+ getPreviousNode ,
102+ pageNode ?. frontmatter ?. previousPage
103+ ) ;
104+ const nextPage = getPaginationDetails ( getNextNode , pageNode ?. frontmatter ?. nextPage ) ;
100105
101106 if ( isDeveloperDocs ) {
102107 // get the MDX for the current doc and render it
0 commit comments