From 44f893effc51849ce104c4c1f5e3e0bce9afbe20 Mon Sep 17 00:00:00 2001 From: SaujanyaMagarde Date: Fri, 20 Jun 2025 23:33:18 +0530 Subject: [PATCH] fix: Corrected blog navigation links --- src/components/Layout/getRouteMeta.tsx | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/components/Layout/getRouteMeta.tsx b/src/components/Layout/getRouteMeta.tsx index b3d14725d46..fa4087f369e 100644 --- a/src/components/Layout/getRouteMeta.tsx +++ b/src/components/Layout/getRouteMeta.tsx @@ -37,6 +37,10 @@ export interface RouteItem { sectionHeader?: string; /** Whether it should be omitted in breadcrumbs */ skipBreadcrumb?: boolean; + + /** Optional fields used only for blog routes */ + icon?: string; + date?: string; } export interface Routes { @@ -63,6 +67,21 @@ type TraversalContext = RouteMeta & { }; export function getRouteMeta(cleanedPath: string, routeTree: RouteItem) { + // Locate the '/blog' route from the top-level route tree. + // This is needed so we can sort the individual blog post routes by date. + const blogRoute = routeTree.routes?.find((r) => r.path === '/blog'); + + // The blog route contains multiple blog posts. + // We sort them by date (oldest to newest) to ensure that + // getRouteMeta can correctly determine previous/next blog posts. + if (blogRoute && Array.isArray(blogRoute.routes)) { + blogRoute.routes = blogRoute.routes + .filter((r) => r.icon === 'blog' && r.date) + .sort( + (a, b) => new Date(a.date!).getTime() - new Date(b.date!).getTime() + ); + } + const breadcrumbs = getBreadcrumbs(cleanedPath, routeTree); const ctx: TraversalContext = { currentIndex: 0, @@ -75,7 +94,6 @@ export function getRouteMeta(cleanedPath: string, routeTree: RouteItem) { }; } -// Performs a depth-first search to find the current route and its previous/next route function buildRouteMeta( searchPath: string, currentRoute: RouteItem,