import React from "react"; import TaskPriorityIcon from "./TaskPriorityIcon"; import TaskTags from "./TaskTags"; import TaskStatusBadge from "./TaskStatusBadge"; import TaskDueDate from "./TaskDueDate"; import TaskRecurrenceBadge from "./TaskRecurrenceBadge"; import { Project } from "../../entities/Project"; import { Task } from "../../entities/Task"; interface TaskHeaderProps { task: Task; project?: Project; onTaskClick: (e: React.MouseEvent) => void; onToggleCompletion?: () => void; hideProjectName?: boolean; } const TaskHeader: React.FC = ({ task, project, onTaskClick, onToggleCompletion, hideProjectName = false, }) => { const capitalizeFirstLetter = (string: string | undefined) => { if (!string) { return ""; } return string.charAt(0).toUpperCase() + string.slice(1); }; return (
{/* Full view (md and larger) */}
{task.name} {project && !hideProjectName && (
{project.name}
)}
{/* Tags without onTagRemove prop */} {task.due_date && }
{/* Mobile view (below md breakpoint) */}
{/* Task Name with Priority Icon and Project Name */}
{/* Priority Icon */} {/* Task Title and Project Name */}
{/* Task Title */} {task.name} {/* Project Name */} {project && !hideProjectName && (
{project.name}
)}
{/* Mobile badges row */}
{task.due_date && }
); }; export default TaskHeader;