fix(frontend): remove locale-dependent routing and migrate to centralized locale-aware router

- Replaced `next/navigation` with `@/lib/i18n/routing` across components, pages, and tests.
- Removed redundant `locale` props from `ProjectWizard` and related pages.
- Updated navigation to exclude explicit `locale` in paths.
- Refactored tests to use mocks from `next-intl/navigation`.
This commit is contained in:
2026-01-03 01:34:53 +01:00
parent a79d923dc1
commit da5affd613
9 changed files with 42 additions and 62 deletions

View File

@@ -8,7 +8,8 @@
'use client';
import { useCallback, useState } from 'react';
import { useRouter, useParams } from 'next/navigation';
import { useParams } from 'next/navigation';
import { useRouter } from '@/lib/i18n/routing';
import { toast } from 'sonner';
import { AgentTypeDetail, AgentTypeForm } from '@/components/agents';
import {

View File

@@ -8,7 +8,7 @@
'use client';
import { useState, useCallback, useMemo } from 'react';
import { useRouter } from 'next/navigation';
import { useRouter } from '@/lib/i18n/routing';
import { toast } from 'sonner';
import { AgentTypeList } from '@/components/agents';
import { useAgentTypes } from '@/lib/api/hooks/useAgentTypes';

View File

@@ -10,7 +10,7 @@
*/
import { useState, use } from 'react';
import { useRouter } from 'next/navigation';
import { useRouter } from '@/lib/i18n/routing';
import { Plus, Upload } from 'lucide-react';
import { Button } from '@/components/ui/button';
import { Skeleton } from '@/components/ui/skeleton';
@@ -25,7 +25,7 @@ interface ProjectIssuesPageProps {
}
export default function ProjectIssuesPage({ params }: ProjectIssuesPageProps) {
const { locale, id: projectId } = use(params);
const { id: projectId } = use(params);
const router = useRouter();
// Filter state
@@ -49,7 +49,7 @@ export default function ProjectIssuesPage({ params }: ProjectIssuesPageProps) {
const { data, isLoading, error } = useIssues(projectId, filters, sort);
const handleIssueClick = (issueId: string) => {
router.push(`/${locale}/projects/${projectId}/issues/${issueId}`);
router.push(`/projects/${projectId}/issues/${issueId}`);
};
const handleBulkChangeStatus = () => {

View File

@@ -13,17 +13,11 @@ export const metadata: Metadata = {
description: 'Create a new Syndarix project with AI-powered agents',
};
interface NewProjectPageProps {
params: Promise<{ locale: string }>;
}
export default async function NewProjectPage({ params }: NewProjectPageProps) {
const { locale } = await params;
export default function NewProjectPage() {
return (
<div className="min-h-screen bg-background">
<div className="container mx-auto px-4 py-8">
<ProjectWizard locale={locale} />
<ProjectWizard />
</div>
</div>
);

View File

@@ -10,7 +10,7 @@
'use client';
import { useState, useCallback, useMemo } from 'react';
import { useRouter } from 'next/navigation';
import { useRouter } from '@/lib/i18n/routing';
import { toast } from 'sonner';
import { Plus } from 'lucide-react';
import { Button } from '@/components/ui/button';