From d22b633d50078e6e89e43408f615d5a46314ce59 Mon Sep 17 00:00:00 2001 From: Akshita Goyal <36129505+gakshita@users.noreply.github.com> Date: Wed, 24 Jul 2024 12:02:01 +0530 Subject: [PATCH] [WEB-1966] fix: export button handled based on role (#5198) * fix: export button handled based on role * fix: formatting * fix: import optimization * fix: border fix for cycles page * fix: import optimization --- web/core/components/cycles/active-cycle/root.tsx | 2 +- web/core/components/exporter/export-modal.tsx | 11 ++++++++--- web/core/components/exporter/guide.tsx | 15 ++++++++++++--- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/web/core/components/cycles/active-cycle/root.tsx b/web/core/components/cycles/active-cycle/root.tsx index c654e011d..8f398b7b3 100644 --- a/web/core/components/cycles/active-cycle/root.tsx +++ b/web/core/components/cycles/active-cycle/root.tsx @@ -57,7 +57,7 @@ export const ActiveCycleRoot: React.FC = observer((props) = {!currentProjectActiveCycle ? ( ) : ( -
+
{currentProjectActiveCycleId && ( void; @@ -35,8 +35,13 @@ export const Exporter: React.FC = observer((props) => { const { workspaceSlug } = useParams(); // store hooks const { workspaceProjectIds, getProjectById } = useProject(); + const { projectsWithCreatePermissions } = useUser(); - const options = workspaceProjectIds?.map((projectId) => { + const wsProjectIdsWithCreatePermisisons = projectsWithCreatePermissions + ? intersection(workspaceProjectIds, Object.keys(projectsWithCreatePermissions)) + : []; + + const options = wsProjectIdsWithCreatePermisisons?.map((projectId) => { const projectDetails = getProjectById(projectId); return { diff --git a/web/core/components/exporter/guide.tsx b/web/core/components/exporter/guide.tsx index 1a576bd1b..7096555ec 100644 --- a/web/core/components/exporter/guide.tsx +++ b/web/core/components/exporter/guide.tsx @@ -17,7 +17,7 @@ import { ImportExportSettingsLoader } from "@/components/ui"; // constants import { EmptyStateType } from "@/constants/empty-state"; import { EXPORT_SERVICES_LIST } from "@/constants/fetch-keys"; -import { EXPORTERS_LIST } from "@/constants/workspace"; +import { EUserWorkspaceRoles, EXPORTERS_LIST } from "@/constants/workspace"; // hooks import { useProject, useUser } from "@/hooks/store"; import { useAppRouter } from "@/hooks/use-app-router"; @@ -37,7 +37,11 @@ const IntegrationGuide = observer(() => { const searchParams = useSearchParams(); const provider = searchParams.get("provider"); // store hooks - const { data: currentUser } = useUser(); + const { + data: currentUser, + canPerformAnyCreateAction, + membership: { currentWorkspaceRole }, + } = useUser(); const { workspaceProjectIds } = useProject(); const { data: exporterServices } = useSWR( @@ -52,6 +56,7 @@ const IntegrationGuide = observer(() => { }; const hasProjects = workspaceProjectIds && workspaceProjectIds.length > 0; + const isAdmin = currentWorkspaceRole === EUserWorkspaceRoles.ADMIN; return ( <> @@ -76,7 +81,11 @@ const IntegrationGuide = observer(() => {
-