diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 35d47f8f..035bc1c5 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,4 +1,4 @@ -import { Routes, Route, Navigate } from 'react-router-dom'; +import { Routes, Route } from 'react-router-dom'; import { useEffect } from 'react'; import Home from './pages/Home'; import Debugger from './pages/Debugger'; @@ -22,6 +22,7 @@ import TaxComplianceWizard from './pages/TaxComplianceWizard'; import EmployeePortal from './pages/EmployeePortal'; import Login from './pages/Login'; import AuthCallback from './pages/AuthCallback'; +import NotFound from './pages/NotFound'; import { useTranslation } from 'react-i18next'; import { contractService } from './services/contracts'; @@ -219,7 +220,7 @@ function App() { } /> } /> - } /> + } /> ); } diff --git a/frontend/src/locales/en/translation.json b/frontend/src/locales/en/translation.json index b4f486f0..1218595b 100644 --- a/frontend/src/locales/en/translation.json +++ b/frontend/src/locales/en/translation.json @@ -124,6 +124,12 @@ "debuggerTitle": "Debugger view crashed", "debuggerDescription": "Reset the debugger or navigate back to the main dashboard." }, + "notFound": { + "title": "Page Not Found", + "description": "The page you're looking for doesn't exist or has been moved.", + "goHome": "Go Home", + "helpCenter": "Help Center" + }, "connectAccount": { "authenticated": "Authenticated", "connect": "Connect", diff --git a/frontend/src/locales/es/translation.json b/frontend/src/locales/es/translation.json index b1083af9..458a2bbd 100644 --- a/frontend/src/locales/es/translation.json +++ b/frontend/src/locales/es/translation.json @@ -124,6 +124,12 @@ "debuggerTitle": "El depurador se bloqueó", "debuggerDescription": "Reinicia el depurador o vuelve al panel principal." }, + "notFound": { + "title": "Página no encontrada", + "description": "La página que buscas no existe o ha sido movida.", + "goHome": "Ir al inicio", + "helpCenter": "Centro de ayuda" + }, "connectAccount": { "authenticated": "Autenticado", "connect": "Conectar", diff --git a/frontend/src/pages/NotFound.tsx b/frontend/src/pages/NotFound.tsx new file mode 100644 index 00000000..f8a5109d --- /dev/null +++ b/frontend/src/pages/NotFound.tsx @@ -0,0 +1,44 @@ +import { Link } from 'react-router-dom'; +import { useTranslation } from 'react-i18next'; + +export default function NotFound() { + const { t } = useTranslation(); + + return ( +
+
+
+ 404 +
+

{t('notFound.title')}

+

{t('notFound.description')}

+
+ + {t('notFound.goHome')} + + + {t('nav.payroll')} + + + {t('employees.titleHighlight')} + + + {t('notFound.helpCenter')} + +
+
+
+ ); +} \ No newline at end of file