import React from "react"; import { useRouter } from "next/router"; // ui import { CustomSelect, Tooltip } from "components/ui"; // icons import { getPriorityIcon } from "components/icons/priority-icon"; // types import { ICurrentUserResponse, IIssue } from "types"; // constants import { PRIORITIES } from "constants/project"; // services import trackEventServices from "services/track-event.service"; // helper import { capitalizeFirstLetter } from "helpers/string.helper"; type Props = { issue: IIssue; partialUpdateIssue: (formData: Partial, issue: IIssue) => void; position?: "left" | "right"; tooltipPosition?: "top" | "bottom"; selfPositioned?: boolean; noBorder?: boolean; user: ICurrentUserResponse | undefined; isNotAllowed: boolean; }; export const ViewPrioritySelect: React.FC = ({ issue, partialUpdateIssue, position = "left", tooltipPosition = "top", selfPositioned = false, noBorder = false, user, isNotAllowed, }) => { const router = useRouter(); const { workspaceSlug } = router.query; return ( { partialUpdateIssue({ priority: data }, issue); trackEventServices.trackIssuePartialPropertyUpdateEvent( { workspaceSlug, workspaceId: issue.workspace, projectId: issue.project_detail.id, projectIdentifier: issue.project_detail.identifier, projectName: issue.project_detail.name, issueId: issue.id, }, "ISSUE_PROPERTY_UPDATE_PRIORITY", user ); }} maxHeight="md" customButton={ } noChevron disabled={isNotAllowed} position={position} selfPositioned={selfPositioned} > {PRIORITIES?.map((priority) => ( <> {getPriorityIcon(priority, "text-sm")} {priority ?? "None"} ))} ); };