diff --git a/packages/web/src/common/utils/i18n/locales/en/tasks.json b/packages/web/src/common/utils/i18n/locales/en/tasks.json
index ce7f0a8b..2b4e7f88 100644
--- a/packages/web/src/common/utils/i18n/locales/en/tasks.json
+++ b/packages/web/src/common/utils/i18n/locales/en/tasks.json
@@ -1,15 +1,25 @@
{
- "addTask": "Add a new task",
- "editTask": "Edit task",
+ "add-task": "Add a new task",
+ "create-task": "Create task",
+ "created-task": "Task created.",
+ "delete-task": "Delete task",
+ "edit-task": "Edit task",
+ "errors": {
+ "not-found": "Not found",
+ "unable-to-find-task": "We're unable to find the task you requested."
+ },
+ "go-back-to-task-list": "Go back to task list",
"label": {
- "title": "Title",
- "completed": "Is complete"
+ "assignee": "Assignee",
+ "completed": "Is complete",
+ "status": "Status",
+ "title": "Title"
},
- "createdTask": "Task created.",
- "markComplete": "Mark complete",
- "markIncomplete": "Mark incomplete",
- "markedComplete": "Marked task complete",
- "markedIncomplete": "Marked task incomplete",
+ "list-tasks": "List tasks",
+ "mark-complete": "Mark complete",
+ "mark-incomplete": "Mark incomplete",
+ "marked-complete": "Marked task complete",
+ "marked-incomplete": "Marked task incomplete",
"marking-complete": "Marking task complete...",
"marking-incomplete": "Marking task incomplete...",
"status": {
@@ -20,6 +30,7 @@
"task": "Task",
"tasks": "Tasks",
"tasks-empty": "Nothing to do. Create a task to get started.",
- "updatedTask": "Task updated.",
- "update-failed": "Failed to update task. Detail: {{message}}"
+ "updated-task": "Task updated.",
+ "update-failed": "Failed to update task. Detail: {{message}}",
+ "view-task": "View task"
}
diff --git a/packages/web/src/common/utils/i18n/locales/es/tasks.json b/packages/web/src/common/utils/i18n/locales/es/tasks.json
index 0142bece..6e9f928a 100644
--- a/packages/web/src/common/utils/i18n/locales/es/tasks.json
+++ b/packages/web/src/common/utils/i18n/locales/es/tasks.json
@@ -1,15 +1,25 @@
{
- "addTask": "Crear una nueva tarea",
- "editTask": "Editar tarea",
+ "add-task": "Crear una nueva tarea",
+ "create-task": "Crear tarea",
+ "created-task": "Tarea creada.",
+ "delete-task": "Eliminar tarea",
+ "edit-task": "Editar tarea",
+ "errors": {
+ "not-found": "No encontrado",
+ "unable-to-find-task": "No podemos encontrar la tarea que solicitaste."
+ },
+ "go-back-to-task-list": "Volver a la lista de tareas",
"label": {
- "title": "Título",
- "completed": "Está completo"
+ "assignee": "Asignado a",
+ "completed": "Está completo",
+ "status": "Estado",
+ "title": "Título"
},
- "createdTask": "Tarea creada.",
- "markComplete": "Márcalo completo",
- "markIncomplete": "Márcalo como incompleto",
- "markedComplete": "Tarea marcada completada",
- "markedIncomplete": "Tarea marcada como incompleta",
+ "list-tasks": "Listar tareas",
+ "mark-complete": "Márcalo completo",
+ "mark-incomplete": "Márcalo como incompleto",
+ "marked-complete": "Tarea marcada completada",
+ "marked-incomplete": "Tarea marcada como incompleta",
"marking-complete": "Marcando la tarea como completada...",
"marking-incomplete": "Marcando la tarea como incompleta...",
"status": {
@@ -20,6 +30,7 @@
"task": "Tarea",
"tasks": "Tareas",
"tasks-empty": "No hay nada que hacer. Haz una tarea para empezar.",
- "updatedTask": "Tarea actualizada.",
- "update-failed": "Error al actualizar la tarea. Detalle: {{message}}"
+ "updated-task": "Tarea actualizada.",
+ "update-failed": "Error al actualizar la tarea. Detalle: {{message}}",
+ "view-task": "Ver tarea"
}
diff --git a/packages/web/src/common/utils/i18n/locales/fr/tasks.json b/packages/web/src/common/utils/i18n/locales/fr/tasks.json
index 1c0bc80f..9fc5c546 100644
--- a/packages/web/src/common/utils/i18n/locales/fr/tasks.json
+++ b/packages/web/src/common/utils/i18n/locales/fr/tasks.json
@@ -1,15 +1,25 @@
{
- "addTask": "Créer une nouvelle tâche",
- "editTask": "Modifier la tâche",
+ "add-task": "Créer une nouvelle tâche",
+ "create-task": "Créer la tâche",
+ "created-task": "Tâche créée.",
+ "delete-task": "Supprimer la tâche",
+ "edit-task": "Modifier la tâche",
+ "errors": {
+ "not-found": "Non trouvé",
+ "unable-to-find-task": "Nous ne pouvons pas trouver la tâche que vous avez demandée."
+ },
+ "go-back-to-task-list": "Retour à la liste des tâches",
"label": {
- "title": "Titre",
- "completed": "Est complet"
+ "assignee": "Assigné à",
+ "completed": "Est complet",
+ "status": "Statut",
+ "title": "Titre"
},
- "createdTask": "Tâche créée.",
- "markComplete": "Marquez-le comme terminé",
- "markIncomplete": "Marquez-le comme incomplet",
- "markedComplete": "Tâche marquée terminée",
- "markedIncomplete": "Tâche marquée incomplète",
+ "list-tasks": "Lister les tâches",
+ "mark-complete": "Marquez-le comme terminé",
+ "mark-incomplete": "Marquez-le comme incomplet",
+ "marked-complete": "Tâche marquée terminée",
+ "marked-incomplete": "Tâche marquée incomplète",
"marking-complete": "Marquage de la tâche comme terminée...",
"marking-incomplete": "Marquage de la tâche comme incomplète...",
"status": {
@@ -20,6 +30,7 @@
"task": "Tâche",
"tasks": "Tâches",
"tasks-empty": "Rien à faire. Créez une tâche pour commencer.",
- "updatedTask": "Tâche mise à jour.",
- "update-failed": "Échec de la mise à jour de la tâche. Détail : {{message}}"
+ "updated-task": "Tâche mise à jour.",
+ "update-failed": "Échec de la mise à jour de la tâche. Détail : {{message}}",
+ "view-task": "Voir la tâche"
}
diff --git a/packages/web/src/pages/Settings/SettingsPage.tsx b/packages/web/src/pages/Settings/SettingsPage.tsx
index 49557645..06e338ed 100644
--- a/packages/web/src/pages/Settings/SettingsPage.tsx
+++ b/packages/web/src/pages/Settings/SettingsPage.tsx
@@ -1,4 +1,4 @@
-import { Link, Outlet } from 'react-router-dom';
+import { NavLink, Outlet } from 'react-router-dom';
import { Palette } from 'lucide-react';
import { Page } from '@react-starter/shared/components/Content/Page';
@@ -8,7 +8,7 @@ import { Skeleton } from '@react-starter/shared/components/shadcn/skeleton';
import { Avatar, AvatarFallback } from '@react-starter/shared/components/shadcn/avatar';
import { useGetCurrentUser } from '@/common/api/useGetCurrentUser';
-import SettingsPageBreadcrumbs from '@/pages/Settings/components/SettingsPageBreadcrumbs';
+import { SettingsPageBreadcrumbs } from '@/pages/Settings/components/SettingsPageBreadcrumbs';
import { Button } from '@react-starter/shared/components/shadcn/button';
/**
@@ -44,10 +44,10 @@ const SettingsPage = () => {
diff --git a/packages/web/src/pages/Settings/components/SettingsPageBreadcrumbs.test.tsx b/packages/web/src/pages/Settings/components/SettingsPageBreadcrumbs.test.tsx
index 22251202..4e4eb303 100644
--- a/packages/web/src/pages/Settings/components/SettingsPageBreadcrumbs.test.tsx
+++ b/packages/web/src/pages/Settings/components/SettingsPageBreadcrumbs.test.tsx
@@ -3,7 +3,7 @@ import { Navigate, Route, Routes } from 'react-router-dom';
import { render, screen } from '@/test/test-utils';
-import SettingsPageBreadcrumbs from './SettingsPageBreadcrumbs';
+import { SettingsPageBreadcrumbs } from './SettingsPageBreadcrumbs';
describe('SettingsPageBreadcrumbs', () => {
it('should render successfully', async () => {
diff --git a/packages/web/src/pages/Settings/components/SettingsPageBreadcrumbs.tsx b/packages/web/src/pages/Settings/components/SettingsPageBreadcrumbs.tsx
index d1d4f842..d58d77cf 100644
--- a/packages/web/src/pages/Settings/components/SettingsPageBreadcrumbs.tsx
+++ b/packages/web/src/pages/Settings/components/SettingsPageBreadcrumbs.tsx
@@ -32,7 +32,10 @@ const SettingsPageBreadcrumbs = ({ className, testId = 'page-settings-breadcrumb
<>
-
+
{pathElements[3].replace('-', ' ')}
@@ -43,4 +46,4 @@ const SettingsPageBreadcrumbs = ({ className, testId = 'page-settings-breadcrumb
);
};
-export default SettingsPageBreadcrumbs;
+export { SettingsPageBreadcrumbs };
diff --git a/packages/web/src/pages/Tasks/TasksPage.tsx b/packages/web/src/pages/Tasks/TasksPage.tsx
index da9ff57f..038a0006 100644
--- a/packages/web/src/pages/Tasks/TasksPage.tsx
+++ b/packages/web/src/pages/Tasks/TasksPage.tsx
@@ -5,7 +5,7 @@ import { Page } from '@react-starter/shared/components/Content/Page';
import { Container } from '@react-starter/shared/components/Content/Container';
import { Heading } from '@react-starter/shared/components/Text/Heading';
-import TasksPageBreadcrumbs from '@/pages/Tasks/components/TasksPageBreadcrumbs';
+import { TasksPageBreadcrumbs } from '@/pages/Tasks/components/TasksPageBreadcrumbs';
import { AddTaskButton } from '@/pages/Tasks/components/Add/AddTaskButton';
/**
diff --git a/packages/web/src/pages/Tasks/components/Add/AddTaskButton.tsx b/packages/web/src/pages/Tasks/components/Add/AddTaskButton.tsx
index 6de9f438..c0278489 100644
--- a/packages/web/src/pages/Tasks/components/Add/AddTaskButton.tsx
+++ b/packages/web/src/pages/Tasks/components/Add/AddTaskButton.tsx
@@ -16,13 +16,13 @@ const AddTaskButton = ({ ...props }: React.ComponentProps) => {
return (
-
- {t('addTask', { ns: 'tasks' })}
+ {t('add-task', { ns: 'tasks' })}
);
};
diff --git a/packages/web/src/pages/Tasks/components/Add/TaskAdd.tsx b/packages/web/src/pages/Tasks/components/Add/TaskAdd.tsx
index be8617f9..21e558c0 100644
--- a/packages/web/src/pages/Tasks/components/Add/TaskAdd.tsx
+++ b/packages/web/src/pages/Tasks/components/Add/TaskAdd.tsx
@@ -41,7 +41,7 @@ const TaskAdd = ({ className, testId = 'task-add' }: BaseComponentProps) => {
{ task: data },
{
onSuccess: () => {
- toast(t('createdTask', { ns: 'tasks' }));
+ toast(t('created-task', { ns: 'tasks' }));
navigate(-1);
},
onError: (err) => {
@@ -59,7 +59,7 @@ const TaskAdd = ({ className, testId = 'task-add' }: BaseComponentProps) => {
{/* heading */}
- {t('addTask', { ns: 'tasks' })}
+ {t('add-task', { ns: 'tasks' })}
{/* error state */}
diff --git a/packages/web/src/pages/Tasks/components/Delete/TaskDeleteDialog.tsx b/packages/web/src/pages/Tasks/components/Delete/TaskDeleteDialog.tsx
index 24e7797a..ef5ab032 100644
--- a/packages/web/src/pages/Tasks/components/Delete/TaskDeleteDialog.tsx
+++ b/packages/web/src/pages/Tasks/components/Delete/TaskDeleteDialog.tsx
@@ -10,6 +10,7 @@ import {
DialogDescription,
DialogFooter,
} from '@react-starter/shared/components/shadcn/dialog';
+import { Tooltip, TooltipTrigger, TooltipContent } from '@react-starter/shared/components/shadcn/tooltip';
import { toast } from '@react-starter/shared/components/shadcn/sonner';
import { ErrorAlert } from '@react-starter/shared/components/Alert/ErrorAlert';
@@ -67,9 +68,14 @@ const TaskDeleteDialog = ({ onSuccess, task, trigger, ...props }: TaskDeleteDial
return (