From e72e6cf2b7289f6d155d3d9140571ff1eb8bc58f Mon Sep 17 00:00:00 2001 From: akhilmhdh Date: Sat, 4 Feb 2023 14:24:10 +0530 Subject: [PATCH] feat(ui): removed workspace context redirect and added redirect when project is deleted --- .../src/context/WorkspaceContext/WorkspaceContext.tsx | 11 +---------- .../ProjectSettingsPage/ProjectSettingsPage.tsx | 8 ++++++-- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/frontend/src/context/WorkspaceContext/WorkspaceContext.tsx b/frontend/src/context/WorkspaceContext/WorkspaceContext.tsx index ea82fbbe7b..4edef8e6ab 100644 --- a/frontend/src/context/WorkspaceContext/WorkspaceContext.tsx +++ b/frontend/src/context/WorkspaceContext/WorkspaceContext.tsx @@ -1,4 +1,4 @@ -import { createContext, ReactNode, useContext, useEffect, useMemo } from 'react'; +import { createContext, ReactNode, useContext, useMemo } from 'react'; import { useRouter } from 'next/router'; import { useGetUserWorkspaces } from '@app/hooks/api'; @@ -30,15 +30,6 @@ export const WorkspaceProvider = ({ children }: Props): JSX.Element => { }; }, [ws, workspaceId, isLoading]); - useEffect(() => { - // not loading and current workspace is empty - // ws empty means user has no access to the ws - // push to the first workspace - if (!isLoading && !value?.currentWorkspace?._id) { - router.push(`/dashboard/${value.workspaces?.[0]?._id}`); - } - }, [value?.currentWorkspace?._id, isLoading, value.workspaces?.[0]?._id, router.pathname]); - return {children}; }; diff --git a/frontend/src/views/Settings/ProjectSettingsPage/ProjectSettingsPage.tsx b/frontend/src/views/Settings/ProjectSettingsPage/ProjectSettingsPage.tsx index e6e8f317d2..953a3d1401 100644 --- a/frontend/src/views/Settings/ProjectSettingsPage/ProjectSettingsPage.tsx +++ b/frontend/src/views/Settings/ProjectSettingsPage/ProjectSettingsPage.tsx @@ -2,6 +2,7 @@ import crypto from 'crypto'; import { useState } from 'react'; import { useTranslation } from 'react-i18next'; +import { useRouter } from 'next/router'; import { useNotificationContext } from '@app/components/context/Notifications/NotificationProvider'; import NavHeader from '@app/components/navigation/NavHeader'; @@ -37,7 +38,8 @@ import { export const ProjectSettingsPage = () => { const { t } = useTranslation(); - const { currentWorkspace } = useWorkspace(); + const { currentWorkspace, workspaces } = useWorkspace(); + const router = useRouter(); const { data: serviceTokens } = useGetUserWsServiceTokens({ workspaceID: currentWorkspace?._id || '' }); @@ -64,7 +66,6 @@ export const ProjectSettingsPage = () => { const host = window.location.origin; const isEnvServiceAllowed = subscriptionPlan !== plans.starter || host !== 'https://app.infisical.com'; - const onRenameWorkspace = async (name: string) => { try { @@ -86,6 +87,9 @@ export const ProjectSettingsPage = () => { setIsDeleting.on(); try { await deleteWorkspace.mutateAsync({ workspaceID }); + // redirect user to first workspace user is part of + const ws = workspaces.find(({ _id }) => _id !== workspaceID); + router.push(`/dashboard/${ws?._id}`); createNotification({ text: 'Successfully deleted workspace', type: 'success'