import { Draggable } from "@hello-pangea/dnd";
import { useLocaleState, useRedirect, useTranslate } from "ra-core";
import { Card, CardContent } from "@/components/ds/ui/card";
import { ReferenceField } from "@/components/ds/admin/reference-field";
import { TextField } from "@/components/ds/admin/text-field";
import { Calendar } from "lucide-react";
import type { Task } from "../types";
import { TaskTypeIcon } from "./TaskTypeIcon";
import { TaskPriorityBadge } from "./TaskPriorityBadge";
import { getRelativeDueDate } from "@/lib/date-utils";
export const TaskCard = ({ task, index }: { task: Task; index: number }) => {
if (!task) return null;
return (
{(provided, snapshot) => (
)}
);
};
export const TaskCardContent = ({
provided,
snapshot,
task,
}: {
provided?: any;
snapshot?: any;
task: Task;
}) => {
const redirect = useRedirect();
const translate = useTranslate();
const [locale] = useLocaleState();
const handleClick = () => {
redirect(`/tasks/${task.id}/show`, undefined, undefined, undefined, {
_scrollToTop: false,
});
};
const isCompleted = task.status === "done" || task.status === "cancelled";
const { text: relativeDueDate, isOverdue } = getRelativeDueDate(
task.due_date || "",
isCompleted,
{ translate, locale },
);
return (
{task.priority &&
}
{task.due_date && (
{relativeDueDate}
)}
{task.contact_id && (
)}
{!task.contact_id && task.company_id && (
)}
{!task.contact_id && !task.company_id && task.deal_id && (
)}
{!task.contact_id && !task.company_id && !task.deal_id && (
{translate("crm.task.related.none")}
)}
);
};