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}
/>
))
) : (