@@ -101,21 +101,34 @@ export default async function Page({params}: {params: {path?: string[]}}) {
101101 }
102102
103103 const pageNode = nodeForPath ( rootNode , params . path ) ;
104- const nextNode = pageNode ? getNextNode ( pageNode ) : undefined ;
105- const previousNode = pageNode ? getPreviousNode ( pageNode ) : undefined ;
106- const nextPage = nextNode
107- ? { path : nextNode . path , title : nextNode . frontmatter . title }
108- : undefined ;
109- const previousPage = previousNode
110- ? { path : previousNode . path , title : previousNode . frontmatter . title }
111- : undefined ;
112104
113105 if ( ! pageNode ) {
114106 // eslint-disable-next-line no-console
115107 console . warn ( 'no page node' , params . path ) ;
116108 return notFound ( ) ;
117109 }
118110
111+ // gather previous and next page that will be displayed in the bottom pagination
112+ let previousPage = pageNode ?. frontmatter ?. previousPage ;
113+ let nextPage = pageNode ?. frontmatter ?. nextPage ;
114+
115+ if ( ! nextPage || ! ( 'path' in nextPage ) || ! ( 'title' in nextPage ) ) {
116+ const nextNode = pageNode ? getNextNode ( pageNode ) : undefined ;
117+ nextPage = nextNode
118+ ? { path : nextNode . path , title : nextNode . frontmatter . title }
119+ : undefined ;
120+ }
121+
122+ if ( ! previousPage || ! ( 'path' in previousPage ) || ! ( 'title' in previousPage ) ) {
123+ const previousNode = pageNode ? getPreviousNode ( pageNode ) : undefined ;
124+ previousPage =
125+ previousNode === 'root'
126+ ? { path : '' , title : 'Welcome to Sentry' }
127+ : previousNode
128+ ? { path : previousNode . path , title : previousNode . frontmatter . title }
129+ : undefined ;
130+ }
131+
119132 // get the MDX for the current doc and render it
120133 let doc : Awaited < ReturnType < typeof getFileBySlug > > | null = null ;
121134 try {
0 commit comments