diff --git a/frontend/components/Project/ProjectDetails.tsx b/frontend/components/Project/ProjectDetails.tsx index 17404ec..b7dad5b 100644 --- a/frontend/components/Project/ProjectDetails.tsx +++ b/frontend/components/Project/ProjectDetails.tsx @@ -42,7 +42,7 @@ const ProjectDetails: React.FC = () => { const [error, setError] = useState(null); const [isModalOpen, setIsModalOpen] = useState(false); const [isConfirmDialogOpen, setIsConfirmDialogOpen] = useState(false); - const [isCompletedOpen, setIsCompletedOpen] = useState(false); + const [showCompleted, setShowCompleted] = useState(false); useEffect(() => { const loadProjectData = async () => { @@ -187,9 +187,7 @@ const ProjectDetails: React.FC = () => { const activeTasks = tasks?.filter((task) => task.status !== 2) || []; //TODO: Also add archived const completedTasks = tasks?.filter((task) => task.status === 2); - const toggleCompleted = () => { - setIsCompletedOpen(!isCompletedOpen); - }; + const displayTasks = showCompleted ? [...activeTasks, ...completedTasks] : activeTasks; const formatProjectDueDate = (dateString: string) => { const date = new Date(dateString); @@ -267,59 +265,43 @@ const ProjectDetails: React.FC = () => {

)} - - -
- {activeTasks.length > 0 ? ( - - ) : ( -

No active tasks.

+
+

Tasks

+ {completedTasks.length > 0 && ( + )}
-
- + - {isCompletedOpen && ( -
- {completedTasks && completedTasks.length > 0 ? ( - - ) : ( -

- No completed tasks. -

- )} -
+
+ {displayTasks.length > 0 ? ( + + ) : ( +

No tasks.

)}
diff --git a/frontend/components/Task/TaskHeader.tsx b/frontend/components/Task/TaskHeader.tsx index 35d4ce4..514b6f7 100644 --- a/frontend/components/Task/TaskHeader.tsx +++ b/frontend/components/Task/TaskHeader.tsx @@ -12,6 +12,7 @@ interface TaskHeaderProps { project?: Project; onTaskClick: (e: React.MouseEvent) => void; onToggleCompletion?: () => void; + hideProjectName?: boolean; } const TaskHeader: React.FC = ({ @@ -19,6 +20,7 @@ const TaskHeader: React.FC = ({ project, onTaskClick, onToggleCompletion, + hideProjectName = false, }) => { const capitalizeFirstLetter = (string: string | undefined) => { if (!string) { @@ -37,7 +39,7 @@ const TaskHeader: React.FC = ({ {task.name} - {project && ( + {project && !hideProjectName && (
{project.name}
@@ -66,7 +68,7 @@ const TaskHeader: React.FC = ({ {task.name} {/* Project Name */} - {project && ( + {project && !hideProjectName && (
{project.name}
diff --git a/frontend/components/Task/TaskItem.tsx b/frontend/components/Task/TaskItem.tsx index bb12482..c9fc837 100644 --- a/frontend/components/Task/TaskItem.tsx +++ b/frontend/components/Task/TaskItem.tsx @@ -10,6 +10,7 @@ interface TaskItemProps { onTaskUpdate: (task: Task) => void; onTaskDelete: (taskId: number) => void; projects: Project[]; + hideProjectName?: boolean; } const TaskItem: React.FC = ({ @@ -17,6 +18,7 @@ const TaskItem: React.FC = ({ onTaskUpdate, onTaskDelete, projects, + hideProjectName = false, }) => { const [isModalOpen, setIsModalOpen] = useState(false); const [projectList, setProjectList] = useState(projects); @@ -73,7 +75,7 @@ const TaskItem: React.FC = ({ return (
- + void; onTaskDelete: (taskId: number) => void; projects: Project[]; + hideProjectName?: boolean; } const TaskList: React.FC = ({ @@ -16,6 +17,7 @@ const TaskList: React.FC = ({ onTaskUpdate, onTaskDelete, projects, + hideProjectName = false, }) => { return (
@@ -27,6 +29,7 @@ const TaskList: React.FC = ({ onTaskUpdate={onTaskUpdate} onTaskDelete={onTaskDelete} projects={projects} + hideProjectName={hideProjectName} /> )) ) : (