import React from "react"; import { observer } from "mobx-react"; import { CalendarCheck2 } from "lucide-react"; // types import { TIssue } from "@plane/types"; // components import { DateDropdown } from "@/components/dropdowns"; // helpers import { cn } from "@/helpers/common.helper"; import { getDate, renderFormattedPayloadDate } from "@/helpers/date-time.helper"; import { shouldHighlightIssueDueDate } from "@/helpers/issue.helper"; // hooks import { useProjectState } from "@/hooks/store"; type Props = { issue: TIssue; onClose: () => void; onChange: (issue: TIssue, data: Partial, updates: any) => void; disabled: boolean; }; export const SpreadsheetDueDateColumn: React.FC = observer((props: Props) => { const { issue, onChange, disabled, onClose } = props; // store hooks const { getStateById } = useProjectState(); // derived values const stateDetails = getStateById(issue.state_id); return (
{ const targetDate = data ? renderFormattedPayloadDate(data) : null; onChange( issue, { target_date: targetDate }, { changed_property: "target_date", change_details: targetDate, } ); }} disabled={disabled} placeholder="Due date" icon={} buttonVariant="transparent-with-text" buttonContainerClassName="w-full" buttonClassName={cn( "rounded-none text-left group-[.selected-issue-row]:bg-custom-primary-100/5 group-[.selected-issue-row]:hover:bg-custom-primary-100/10", { "text-red-500": shouldHighlightIssueDueDate(issue.target_date, stateDetails?.group), } )} clearIconClassName="!text-custom-text-100" onClose={onClose} />
); });