/** * Copyright (c) 2023-present Plane Software, Inc. and contributors * SPDX-License-Identifier: AGPL-3.0-only * See the LICENSE file for details. */ import { observer } from "mobx-react"; import { useTranslation } from "@plane/i18n"; import { DueDatePropertyIcon, LabelPropertyIcon, MembersPropertyIcon, PriorityPropertyIcon, StatePropertyIcon, } from "@plane/propel/icons"; import type { TIssue } from "@plane/types"; import { Badge } from "@plane/propel/badge"; import { getDate, renderFormattedPayloadDate } from "@plane/utils"; import { DateDropdown } from "@/components/dropdowns/date"; import { MemberDropdown } from "@/components/dropdowns/member/dropdown"; import { PriorityDropdown } from "@/components/dropdowns/priority"; import { IssueLabelSelect } from "@/components/issues/select"; import type { TIssueOperations } from "@/components/issues/issue-detail"; type Props = { workspaceSlug: string; targetProjectId: string; issue: Partial & { project_detail?: { name?: string } | null; }; issueOperations: TIssueOperations; isEditable: boolean; }; export const ExternalContoursIssueContentProperties = observer(function ExternalContoursIssueContentProperties(props: Props) { const { workspaceSlug, targetProjectId, issue, issueOperations, isEditable } = props; const { t } = useTranslation(); const minDate = issue.start_date ? getDate(issue.start_date) : null; minDate?.setDate(minDate.getDate()); if (!issue || !issue?.id) return <>; return (
{t("external_contours_page.properties.section_title")}
{t("external_contours_page.properties.target_contour")}
{issue.project_detail?.name || t("common.none")}
{t("assignees")}
issue?.id && issueOperations.update(workspaceSlug, targetProjectId, issue.id, { assignee_ids: val })} disabled={!isEditable} projectId={targetProjectId} placeholder={t("assignee")} multiple buttonVariant={(issue?.assignee_ids || []).length > 0 ? "transparent-without-text" : "transparent-with-text"} className="group w-3/5 flex-grow" buttonContainerClassName="w-full text-left" buttonClassName={`text-13 justify-between ${(issue?.assignee_ids || []).length > 0 ? "" : "text-placeholder"}`} hideIcon={issue.assignee_ids?.length === 0} dropdownArrow dropdownArrowClassName="hidden h-3.5 w-3.5 group-hover:inline" />
{t("priority")}
issue?.id && issueOperations.update(workspaceSlug, targetProjectId, issue.id, { priority: val })} disabled={!isEditable} buttonVariant="border-with-text" className="w-3/5 flex-grow rounded-sm px-2 hover:bg-layer-1" buttonContainerClassName="w-full text-left" buttonClassName="h-auto w-min whitespace-nowrap" />
{t("due_date")}
issue?.id && issueOperations.update(workspaceSlug, targetProjectId, issue.id, { target_date: val ? renderFormattedPayloadDate(val) : null, }) } minDate={minDate ?? undefined} disabled={!isEditable} buttonVariant="transparent-with-text" className="group w-3/5 flex-grow" buttonContainerClassName="w-full text-left" buttonClassName={`text-13 ${issue?.target_date ? "" : "text-placeholder"}`} hideIcon clearIconClassName="hidden h-3 w-3 group-hover:inline" />
{t("labels")}
issue?.id && issueOperations.update(workspaceSlug, targetProjectId, issue.id, { label_ids: labelIds })} projectId={targetProjectId} disabled={!isEditable} />
); });