import type { FC } from "react"; import { CalendarCheck2, CalendarClock, CalendarDays, LayersIcon, Link2, Paperclip, Signal, Tag, Triangle, Users, } from "lucide-react"; // types import type { ISvgIcons } from "@plane/propel/icons"; import { CycleIcon, DoubleCircleIcon, ModuleIcon } from "@plane/propel/icons"; import type { IGroupByColumn, IIssueDisplayProperties, TGetColumns, TSpreadsheetColumn } from "@plane/types"; // components import { SpreadsheetAssigneeColumn, SpreadsheetAttachmentColumn, SpreadsheetCreatedOnColumn, SpreadsheetDueDateColumn, SpreadsheetEstimateColumn, SpreadsheetLabelColumn, SpreadsheetModuleColumn, SpreadsheetCycleColumn, SpreadsheetLinkColumn, SpreadsheetPriorityColumn, SpreadsheetStartDateColumn, SpreadsheetStateColumn, SpreadsheetSubIssueColumn, SpreadsheetUpdatedOnColumn, } from "@/components/issues/issue-layouts/spreadsheet/columns"; // store import { store } from "@/lib/store-context"; export type TGetScopeMemberIdsResult = { memberIds: string[]; includeNone: boolean; }; export const getScopeMemberIds = ({ isWorkspaceLevel, projectId }: TGetColumns): TGetScopeMemberIdsResult => { // store values const { workspaceMemberIds } = store.memberRoot.workspace; const { projectMemberIds } = store.memberRoot.project; // derived values const memberIds = workspaceMemberIds; if (isWorkspaceLevel) { return { memberIds: memberIds ?? [], includeNone: true }; } if (projectId || (projectMemberIds && projectMemberIds.length > 0)) { const { getProjectMemberIds } = store.memberRoot.project; const _projectMemberIds = projectId ? getProjectMemberIds(projectId, false) : projectMemberIds; return { memberIds: _projectMemberIds ?? [], includeNone: true, }; } return { memberIds: [], includeNone: true }; }; export const getTeamProjectColumns = (): IGroupByColumn[] | undefined => undefined; export const SpreadSheetPropertyIconMap: Record> = { Users: Users, CalenderDays: CalendarDays, CalenderCheck2: CalendarCheck2, Triangle: Triangle, Tag: Tag, ModuleIcon: ModuleIcon, ContrastIcon: CycleIcon, Signal: Signal, CalendarClock: CalendarClock, DoubleCircleIcon: DoubleCircleIcon, Link2: Link2, Paperclip: Paperclip, LayersIcon: LayersIcon, }; export const SPREADSHEET_COLUMNS: { [key in keyof IIssueDisplayProperties]: TSpreadsheetColumn } = { assignee: SpreadsheetAssigneeColumn, created_on: SpreadsheetCreatedOnColumn, due_date: SpreadsheetDueDateColumn, estimate: SpreadsheetEstimateColumn, labels: SpreadsheetLabelColumn, modules: SpreadsheetModuleColumn, cycle: SpreadsheetCycleColumn, link: SpreadsheetLinkColumn, priority: SpreadsheetPriorityColumn, start_date: SpreadsheetStartDateColumn, state: SpreadsheetStateColumn, sub_issue_count: SpreadsheetSubIssueColumn, updated_on: SpreadsheetUpdatedOnColumn, attachment_count: SpreadsheetAttachmentColumn, };