From f2ebac1bb486b614447c257a4faad368893c9630 Mon Sep 17 00:00:00 2001 From: Aaryan Khandelwal <65252264+aaryan610@users.noreply.github.com> Date: Mon, 19 Jun 2023 23:39:47 +0530 Subject: [PATCH] fix: issue details page auth (#1331) --- apps/app/components/issues/index.ts | 1 + apps/app/components/issues/main-content.tsx | 118 ++++++++++++++++++ .../projects/[projectId]/issues/[issueId].tsx | 100 +-------------- 3 files changed, 123 insertions(+), 96 deletions(-) create mode 100644 apps/app/components/issues/main-content.tsx diff --git a/apps/app/components/issues/index.ts b/apps/app/components/issues/index.ts index c5322645f4..7549d19d42 100644 --- a/apps/app/components/issues/index.ts +++ b/apps/app/components/issues/index.ts @@ -5,6 +5,7 @@ export * from "./activity"; export * from "./delete-issue-modal"; export * from "./description-form"; export * from "./form"; +export * from "./main-content"; export * from "./modal"; export * from "./my-issues-list-item"; export * from "./parent-issues-list-modal"; diff --git a/apps/app/components/issues/main-content.tsx b/apps/app/components/issues/main-content.tsx new file mode 100644 index 0000000000..6123556a5f --- /dev/null +++ b/apps/app/components/issues/main-content.tsx @@ -0,0 +1,118 @@ +import Link from "next/link"; +import { useRouter } from "next/router"; + +import useSWR from "swr"; + +// services +import issuesService from "services/issues.service"; +// hooks +import useUserAuth from "hooks/use-user-auth"; +// contexts +import { useProjectMyMembership } from "contexts/project-member.context"; +// components +import { + AddComment, + IssueActivitySection, + IssueAttachmentUpload, + IssueAttachments, + IssueDescriptionForm, + SubIssuesList, +} from "components/issues"; +// ui +import { CustomMenu } from "components/ui"; +// types +import { IIssue } from "types"; +// fetch-keys +import { SUB_ISSUES } from "constants/fetch-keys"; + +type Props = { + issueDetails: IIssue; + submitChanges: (formData: Partial) => Promise; +}; + +export const IssueMainContent: React.FC = ({ issueDetails, submitChanges }) => { + const router = useRouter(); + const { workspaceSlug, projectId, issueId } = router.query; + + const { user } = useUserAuth(); + const { memberRole } = useProjectMyMembership(); + + const { data: siblingIssues } = useSWR( + workspaceSlug && projectId && issueDetails?.parent ? SUB_ISSUES(issueDetails.parent) : null, + workspaceSlug && projectId && issueDetails?.parent + ? () => + issuesService.subIssues( + workspaceSlug as string, + projectId as string, + issueDetails.parent ?? "" + ) + : null + ); + + return ( + <> +
+ {issueDetails?.parent && issueDetails.parent !== "" ? ( +
+ + + + + {issueDetails.project_detail.identifier}-{issueDetails.parent_detail?.sequence_id} + + + {issueDetails.parent_detail?.name.substring(0, 50)} + + + + + + {siblingIssues && siblingIssues.length > 0 ? ( + siblingIssues.map((issue: IIssue) => ( + + + + {issueDetails.project_detail.identifier}-{issue.sequence_id} + + + + )) + ) : ( + + No other sibling issues + + )} + +
+ ) : null} + +
+ +
+
+
+

Attachments

+
+ + +
+
+
+

Comments/Activity

+ + +
+ + ); +}; diff --git a/apps/app/pages/[workspaceSlug]/projects/[projectId]/issues/[issueId].tsx b/apps/app/pages/[workspaceSlug]/projects/[projectId]/issues/[issueId].tsx index e1c883c0b7..516a2471b5 100644 --- a/apps/app/pages/[workspaceSlug]/projects/[projectId]/issues/[issueId].tsx +++ b/apps/app/pages/[workspaceSlug]/projects/[projectId]/issues/[issueId].tsx @@ -1,14 +1,11 @@ import React, { useCallback, useEffect } from "react"; -import Link from "next/link"; import { useRouter } from "next/router"; import useSWR, { mutate } from "swr"; // react-hook-form import { useForm } from "react-hook-form"; -// contexts -import { useProjectMyMembership } from "contexts/project-member.context"; // services import issuesService from "services/issues.service"; // hooks @@ -16,23 +13,15 @@ import useUserAuth from "hooks/use-user-auth"; // layouts import { ProjectAuthorizationWrapper } from "layouts/auth-layout"; // components -import { - IssueDescriptionForm, - SubIssuesList, - IssueDetailsSidebar, - IssueActivitySection, - AddComment, - IssueAttachmentUpload, - IssueAttachments, -} from "components/issues"; +import { IssueDetailsSidebar, IssueMainContent } from "components/issues"; // ui -import { Loader, CustomMenu } from "components/ui"; +import { Loader } from "components/ui"; import { Breadcrumbs } from "components/breadcrumbs"; // types import { IIssue } from "types"; import type { NextPage } from "next"; // fetch-keys -import { PROJECT_ISSUES_ACTIVITY, ISSUE_DETAILS, SUB_ISSUES } from "constants/fetch-keys"; +import { PROJECT_ISSUES_ACTIVITY, ISSUE_DETAILS } from "constants/fetch-keys"; const defaultValues = { name: "", @@ -55,7 +44,6 @@ const IssueDetailsPage: NextPage = () => { const { workspaceSlug, projectId, issueId } = router.query; const { user } = useUserAuth(); - const { memberRole } = useProjectMyMembership(); const { data: issueDetails, mutate: mutateIssueDetails } = useSWR( workspaceSlug && projectId && issueId ? ISSUE_DETAILS(issueId as string) : null, @@ -65,18 +53,6 @@ const IssueDetailsPage: NextPage = () => { : null ); - const { data: siblingIssues } = useSWR( - workspaceSlug && projectId && issueDetails?.parent ? SUB_ISSUES(issueDetails.parent) : null, - workspaceSlug && projectId && issueDetails?.parent - ? () => - issuesService.subIssues( - workspaceSlug as string, - projectId as string, - issueDetails.parent ?? "" - ) - : null - ); - const { reset, control, watch } = useForm({ defaultValues, }); @@ -149,75 +125,7 @@ const IssueDetailsPage: NextPage = () => { {issueDetails && projectId ? (
-
- {issueDetails?.parent && issueDetails.parent !== "" ? ( -
- - - - - {issueDetails.project_detail.identifier}- - {issueDetails.parent_detail?.sequence_id} - - - {issueDetails.parent_detail?.name.substring(0, 50)} - - - - - - {siblingIssues && siblingIssues.length > 0 ? ( - siblingIssues.map((issue: IIssue) => ( - - - - {issueDetails.project_detail.identifier}-{issue.sequence_id} - - - - )) - ) : ( - - No other sibling issues - - )} - -
- ) : null} - -
- -
-
-
-

Attachments

-
- - -
-
-
-

Comments/Activity

- - -
+