Files
gh-igpastor-sng-claude-mark…/commands/sng-add-route.md
2025-11-29 18:48:03 +08:00

2.5 KiB

Add Route Command

You are helping the user add a new route to their frontend application following Sngular's routing best practices.

Instructions

  1. Detect the framework and routing setup:

    • Next.js (App Router or Pages Router)
    • React Router
    • Vue Router
    • Other routing solution
  2. Ask for route details:

    • Route path (e.g., /dashboard, /users/:id)
    • Route name/title
    • Whether it requires authentication
    • Parent route (if nested)
    • Any route parameters or query params
  3. Determine route type:

    • Public route
    • Protected route (requires authentication)
    • Nested route
    • Dynamic route with parameters
    • Layout route

Implementation Tasks

For Next.js App Router:

  1. Create the route directory structure: app/[route-path]/page.tsx
  2. Add layout if needed: app/[route-path]/layout.tsx
  3. Add loading state: app/[route-path]/loading.tsx
  4. Add error boundary: app/[route-path]/error.tsx
  5. Add metadata for SEO
  6. Implement the page component

For Next.js Pages Router:

  1. Create page file in pages/ directory
  2. Add getServerSideProps or getStaticProps if needed
  3. Configure route in middleware for protection

For React Router:

  1. Create the page component
  2. Add route configuration in router setup
  3. Add route to navigation
  4. Set up protected route wrapper if needed

For Vue Router:

  1. Create the view component
  2. Add route configuration in router/index.ts
  3. Add route guards if authentication required
  4. Update navigation menu

Files to Create/Update

  1. Page/View Component: Main component for the route
  2. Route Configuration: Add to routing setup
  3. Navigation: Update navigation menu/sidebar
  4. Breadcrumbs: Update breadcrumb configuration if used
  5. Tests: Add route testing
  6. Types: Add route-specific TypeScript types

Best Practices

  • Use proper SEO metadata (title, description, OG tags)
  • Implement loading states
  • Add error boundaries
  • Use code splitting for better performance
  • Add route guards for protected routes
  • Follow consistent naming conventions
  • Add proper TypeScript types for route params
  • Implement skeleton loaders for better UX
  • Add proper ARIA landmarks for accessibility

Example Outputs

For a dashboard route in Next.js App Router:

  • app/dashboard/page.tsx - Main page component
  • app/dashboard/layout.tsx - Dashboard layout
  • app/dashboard/loading.tsx - Loading state
  • app/dashboard/error.tsx - Error boundary

Ask the user: "What route would you like to add to your application?"