import { useRouter } from "next/router"; //hook import useMyIssues from "hooks/my-issues/use-my-issues"; import useIssuesView from "hooks/use-issues-view"; import useProfileIssues from "hooks/use-profile-issues"; // components import { SingleBoard } from "components/core/views/board-view/single-board"; import { IssuePeekOverview } from "components/issues"; // icons import { StateGroupIcon } from "components/icons"; // helpers import { addSpaceIfCamelCase } from "helpers/string.helper"; // types import { ICurrentUserResponse, IIssue, IIssueViewProps, IState, UserAuth } from "types"; type Props = { addIssueToGroup: (groupTitle: string) => void; disableUserActions: boolean; disableAddIssueOption?: boolean; dragDisabled: boolean; handleIssueAction: (issue: IIssue, action: "copy" | "delete" | "edit") => void; handleDraftIssueAction?: (issue: IIssue, action: "edit" | "delete") => void; handleTrashBox: (isDragging: boolean) => void; openIssuesListModal?: (() => void) | null; removeIssue: ((bridgeId: string, issueId: string) => void) | null; myIssueProjectId?: string | null; handleMyIssueOpen?: (issue: IIssue) => void; states: IState[] | undefined; user: ICurrentUserResponse | undefined; userAuth: UserAuth; viewProps: IIssueViewProps; }; export const AllBoards: React.FC = ({ addIssueToGroup, disableUserActions, disableAddIssueOption = false, dragDisabled, handleIssueAction, handleDraftIssueAction, handleTrashBox, openIssuesListModal, myIssueProjectId, handleMyIssueOpen, removeIssue, states, user, userAuth, viewProps, }) => { const router = useRouter(); const { workspaceSlug, projectId, userId } = router.query; const isProfileIssue = router.pathname.includes("assigned") || router.pathname.includes("created") || router.pathname.includes("subscribed"); const isMyIssue = router.pathname.includes("my-issues"); const { mutateIssues } = useIssuesView(); const { mutateMyIssues } = useMyIssues(workspaceSlug?.toString()); const { mutateProfileIssues } = useProfileIssues(workspaceSlug?.toString(), userId?.toString()); const { displayFilters, groupedIssues } = viewProps; return ( <> isMyIssue ? mutateMyIssues() : isProfileIssue ? mutateProfileIssues() : mutateIssues() } projectId={myIssueProjectId ? myIssueProjectId : projectId?.toString() ?? ""} workspaceSlug={workspaceSlug?.toString() ?? ""} readOnly={disableUserActions} /> {groupedIssues ? (
{Object.keys(groupedIssues).map((singleGroup, index) => { const currentState = displayFilters?.group_by === "state" ? states?.find((s) => s.id === singleGroup) : null; if (!displayFilters?.show_empty_groups && groupedIssues[singleGroup].length === 0) return null; return ( addIssueToGroup(singleGroup)} currentState={currentState} disableUserActions={disableUserActions} disableAddIssueOption={disableAddIssueOption} dragDisabled={dragDisabled} groupTitle={singleGroup} handleIssueAction={handleIssueAction} handleDraftIssueAction={handleDraftIssueAction} handleTrashBox={handleTrashBox} openIssuesListModal={openIssuesListModal ?? null} handleMyIssueOpen={handleMyIssueOpen} removeIssue={removeIssue} user={user} userAuth={userAuth} viewProps={viewProps} /> ); })} {!displayFilters?.show_empty_groups && (

Hidden groups

{Object.keys(groupedIssues).map((singleGroup, index) => { const currentState = displayFilters?.group_by === "state" ? states?.find((s) => s.id === singleGroup) : null; if (groupedIssues[singleGroup].length === 0) return (
{currentState && ( )}

{displayFilters?.group_by === "state" ? addSpaceIfCamelCase(currentState?.name ?? "") : addSpaceIfCamelCase(singleGroup)}

0
); })}
)}
) : null} ); };