diff --git a/src/app/kanban/KanbanPageClient.tsx b/src/app/kanban/KanbanPageClient.tsx index a8f19b5..151f7a3 100644 --- a/src/app/kanban/KanbanPageClient.tsx +++ b/src/app/kanban/KanbanPageClient.tsx @@ -1,6 +1,7 @@ 'use client'; import { useState } from 'react'; +import { useSearchParams } from 'next/navigation'; import { KanbanBoardContainer } from '@/components/kanban/BoardContainer'; import { Header } from '@/components/ui/Header'; import { TasksProvider, useTasksContext } from '@/contexts/TasksContext'; @@ -25,6 +26,8 @@ function KanbanPageContent() { const { preferences, updateViewPreferences } = useUserPreferences(); const [isCreateModalOpen, setIsCreateModalOpen] = useState(false); const isMobile = useIsMobile(768); // Tailwind md breakpoint + const searchParams = useSearchParams(); + const taskIdFromUrl = searchParams.get('taskId'); // Extraire les préférences du context const showFilters = preferences.viewPreferences.showFilters; @@ -190,6 +193,7 @@ function KanbanPageContent() { diff --git a/src/components/daily/DailyCheckboxItem.tsx b/src/components/daily/DailyCheckboxItem.tsx index d3f80e6..1978465 100644 --- a/src/components/daily/DailyCheckboxItem.tsx +++ b/src/components/daily/DailyCheckboxItem.tsx @@ -128,7 +128,7 @@ export function DailyCheckboxItem({ {/* Lien vers la tâche si liée */} {checkbox.task && ( diff --git a/src/components/daily/PendingTasksSection.tsx b/src/components/daily/PendingTasksSection.tsx index 039a030..512a6a9 100644 --- a/src/components/daily/PendingTasksSection.tsx +++ b/src/components/daily/PendingTasksSection.tsx @@ -1,6 +1,7 @@ 'use client'; import { useState, useEffect, useCallback, useTransition } from 'react'; +import Link from 'next/link'; import { Card, CardHeader, CardContent } from '@/components/ui/Card'; import { Button } from '@/components/ui/Button'; import { DailyCheckbox, DailyCheckboxType } from '@/lib/types'; @@ -225,9 +226,12 @@ export function PendingTasksSection({ `Il y a ${daysAgo} jours`} {task.task && ( - + 🔗 {task.task.title} - + )} diff --git a/src/components/kanban/BoardContainer.tsx b/src/components/kanban/BoardContainer.tsx index ed5c437..acc7b4f 100644 --- a/src/components/kanban/BoardContainer.tsx +++ b/src/components/kanban/BoardContainer.tsx @@ -1,6 +1,6 @@ 'use client'; -import { useState } from 'react'; +import { useState, useEffect } from 'react'; import { EditTaskForm } from '@/components/forms/EditTaskForm'; import { useTasksContext } from '@/contexts/TasksContext'; import { useUserPreferences } from '@/contexts/UserPreferencesContext'; @@ -14,11 +14,13 @@ import { BoardRouter } from './BoardRouter'; interface KanbanBoardContainerProps { showFilters?: boolean; showObjectives?: boolean; + initialTaskIdToEdit?: string | null; } export function KanbanBoardContainer({ showFilters = true, - showObjectives = true + showObjectives = true, + initialTaskIdToEdit = null }: KanbanBoardContainerProps = {}) { const { filteredTasks, @@ -37,6 +39,16 @@ export function KanbanBoardContainer({ const visibleStatuses = allStatuses.filter(status => isColumnVisible(status.key)).map(s => s.key); const [editingTask, setEditingTask] = useState(null); + // Effet pour ouvrir automatiquement la popup d'édition si un taskId est fourni dans l'URL + useEffect(() => { + if (initialTaskIdToEdit && filteredTasks.length > 0) { + const taskToEdit = filteredTasks.find(task => task.id === initialTaskIdToEdit); + if (taskToEdit) { + setEditingTask(taskToEdit); + } + } + }, [initialTaskIdToEdit, filteredTasks]); + const handleEditTask = (task: Task) => { setEditingTask(task); };