Navigation System
The navigation system is built on Next.js App Router with a type-safe routing configuration, providing a flexible and maintainable way to handle application routing.
Key Features
🔒
Type-Safe Routes
Fully typed route definitions and parameters
🎯
Active State
Intelligent active route detection
🔄
Dynamic Paths
Support for dynamic route parameters
📱
Responsive
Adaptive navigation components
Route Configuration
Routes are defined in a type-safe configuration object that includes metadata, paths, and additional information for each route.
type RouteConfigType = {
path: string
disabled?: boolean
name: RouteName
metadata: Metadata
metadataExtra: {
image?: string
icon?: keyof typeof Icons
name: string
}
}
Navigation Components
AppSidebar
The AppSidebar
component provides a hierarchical navigation structure with categories and items.
import { ROUTES } from "@/lib/routes"
const dashboardRoutes: RouteConfigType[] = [ROUTES.dashboard, ROUTES.analytics, ROUTES.items]
const miscRoutes: RouteConfigType[] = [
{
name: "settings-workspace",
path: "/settings",
metadata: {
title: "Settings",
},
metadataExtra: {
name: "Settings",
icon: "settings",
},
},
]
NavMain (@/components/global/nav-main)
The NavMain
component renders navigation items with icons and active states.
// Main routes
<NavMain
routes={dashboardRoutes}
slug={slug}
label="Main routes"
/>
// Misc routes
<NavMain
routes={miscRoutes}
slug={slug}
className="mt-auto"
label="Misc routes"
/>
Route Helpers (@/lib/routes)
createRoute
Creates a route with type-safe parameters
createRoute('dashboard', { slug: 'workspace-1' })
redirectToRoute
Redirects to a route with proper typing
redirectToRoute('settings', { slug: 'workspace-1' })
isRouteActive
Determines if a route is currently active
isRouteActive(routeHref, pathname, 1)
Best Practices
Route Definition
- Use type-safe route names
- Include proper metadata
- Define clear path patterns
- Document route parameters
Navigation Usage
- Leverage type checking
- Use helper functions
- Handle loading states
- Implement proper active states