import React, { useState } from "react"; // components import { SingleSpreadsheetIssue } from "components/core"; // hooks import useSubIssue from "hooks/use-sub-issue"; // types import { ICurrentUserResponse, IIssue, Properties, UserAuth } from "types"; type Props = { key: string; issue: IIssue; expandedIssues: string[]; setExpandedIssues: React.Dispatch>; properties: Properties; handleEditIssue: (issue: IIssue) => void; handleDeleteIssue: (issue: IIssue) => void; gridTemplateColumns: string; user: ICurrentUserResponse | undefined; userAuth: UserAuth; nestingLevel?: number; }; export const SpreadsheetIssues: React.FC = ({ key, issue, expandedIssues, setExpandedIssues, gridTemplateColumns, properties, handleEditIssue, handleDeleteIssue, user, userAuth, nestingLevel = 0, }) => { const handleToggleExpand = (issueId: string) => { setExpandedIssues((prevState) => { const newArray = [...prevState]; const index = newArray.indexOf(issueId); if (index > -1) { newArray.splice(index, 1); } else { newArray.push(issueId); } return newArray; }); }; const isExpanded = expandedIssues.indexOf(issue.id) > -1; const { subIssues, isLoading } = useSubIssue(issue.id, isExpanded); return (
handleEditIssue(issue)} handleDeleteIssue={handleDeleteIssue} user={user} userAuth={userAuth} nestingLevel={nestingLevel} /> {isExpanded && !isLoading && subIssues && subIssues.length > 0 && subIssues.map((subIssue: IIssue, subIndex: number) => ( handleEditIssue(subIssue)} handleDeleteIssue={handleDeleteIssue} user={user} userAuth={userAuth} nestingLevel={nestingLevel + 1} /> ))}
); };