import { useRef } from "react"; import { useRouter } from "next/router"; // types import { IIssueDisplayProperties, TIssue } from "@plane/types"; import { EIssueActions } from "../types"; // constants import { SPREADSHEET_PROPERTY_DETAILS } from "constants/spreadsheet"; // components import { WithDisplayPropertiesHOC } from "../properties/with-display-properties-HOC"; import { useEventTracker } from "hooks/store"; import { observer } from "mobx-react"; type Props = { displayProperties: IIssueDisplayProperties; issueDetail: TIssue; disableUserActions: boolean; property: keyof IIssueDisplayProperties; handleIssues: (issue: TIssue, action: EIssueActions) => Promise; isEstimateEnabled: boolean; }; export const IssueColumn = observer((props: Props) => { const { displayProperties, issueDetail, disableUserActions, property, handleIssues, isEstimateEnabled } = props; // router const router = useRouter(); const tableCellRef = useRef(null); const { captureIssueEvent } = useEventTracker(); const shouldRenderProperty = property === "estimate" ? isEstimateEnabled : true; const { Column } = SPREADSHEET_PROPERTY_DETAILS[property]; return ( , updates: any) => handleIssues({ ...issue, ...data }, EIssueActions.UPDATE).then(() => { captureIssueEvent({ eventName: "Issue updated", payload: { ...issue, ...data, element: "Spreadsheet layout", }, updates: updates, path: router.asPath, }); }) } disabled={disableUserActions} onClose={() => { tableCellRef?.current?.focus(); }} /> ); });