import React, { useState } from "react"; // next import { useRouter } from "next/router"; // components import { SpreadsheetColumns, SpreadsheetIssues } from "components/core"; import { Icon, Spinner } from "components/ui"; // hooks import useIssuesProperties from "hooks/use-issue-properties"; import useSpreadsheetIssuesView from "hooks/use-spreadsheet-issues-view"; // types import { ICurrentUserResponse, IIssue, Properties, UserAuth } from "types"; // constants import { SPREADSHEET_COLUMN } from "constants/spreadsheet"; // icon import { PlusIcon } from "@heroicons/react/24/outline"; type Props = { handleEditIssue: (issue: IIssue) => void; handleDeleteIssue: (issue: IIssue) => void; user: ICurrentUserResponse | undefined; userAuth: UserAuth; }; export const SpreadsheetView: React.FC = ({ handleEditIssue, handleDeleteIssue, user, userAuth, }) => { const [expandedIssues, setExpandedIssues] = useState([]); const router = useRouter(); const { workspaceSlug, projectId } = router.query; const { spreadsheetIssues } = useSpreadsheetIssuesView(); const [properties] = useIssuesProperties(workspaceSlug as string, projectId as string); const columnData = SPREADSHEET_COLUMN.map((column) => ({ ...column, isActive: properties ? column.propertyName === "labels" ? properties[column.propertyName as keyof Properties] : column.propertyName === "title" ? true : properties[column.propertyName as keyof Properties] : false, })); const gridTemplateColumns = columnData .filter((column) => column.isActive) .map((column) => column.colSize) .join(" "); return (
{spreadsheetIssues ? (
{spreadsheetIssues.map((issue: IIssue, index) => ( ))}
) : ( )}
); };