mirror of
https://github.com/hex248/sprint.git
synced 2026-02-08 18:33:01 +00:00
39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import { useMemo } from "react";
|
|
import { IssueDetails } from "@/components/issue-details";
|
|
import { useSelection } from "@/components/selection-provider";
|
|
import {
|
|
useOrganisationMembers,
|
|
useSelectedIssue,
|
|
useSelectedOrganisation,
|
|
useSelectedProject,
|
|
useSprints,
|
|
} from "@/lib/query/hooks";
|
|
|
|
export function IssueDetailPane() {
|
|
const { selectIssue } = useSelection();
|
|
const selectedOrganisation = useSelectedOrganisation();
|
|
const selectedProject = useSelectedProject();
|
|
const issueData = useSelectedIssue();
|
|
const { data: sprints = [] } = useSprints(selectedProject?.Project.id);
|
|
const { data: membersData = [] } = useOrganisationMembers(selectedOrganisation?.Organisation.id);
|
|
|
|
const members = useMemo(() => membersData.map((member) => member.User), [membersData]);
|
|
const statuses = selectedOrganisation?.Organisation.statuses ?? {};
|
|
|
|
if (!issueData || !selectedProject || !selectedOrganisation) {
|
|
return null;
|
|
}
|
|
|
|
return (
|
|
<IssueDetails
|
|
issueData={issueData}
|
|
projectKey={selectedProject.Project.key}
|
|
sprints={sprints}
|
|
members={members}
|
|
statuses={statuses}
|
|
onClose={() => selectIssue(null)}
|
|
onDelete={() => selectIssue(null)}
|
|
/>
|
|
);
|
|
}
|