diff --git a/frontend/src/views/Org/IdentityPage/IdentityPage.tsx b/frontend/src/views/Org/IdentityPage/IdentityPage.tsx index 1be789baa..aaf7d7398 100644 --- a/frontend/src/views/Org/IdentityPage/IdentityPage.tsx +++ b/frontend/src/views/Org/IdentityPage/IdentityPage.tsx @@ -24,6 +24,7 @@ import { useRevokeIdentityTokenAuthToken, useRevokeIdentityUniversalAuthClientSecret} from "@app/hooks/api"; import { usePopUp } from "@app/hooks/usePopUp"; +import { TabSections } from "@app/types"; import { IdentityAuthMethodModal } from "../MembersPage/components/OrgIdentityTab/components/IdentitySection/IdentityAuthMethodModal"; import { IdentityModal } from "../MembersPage/components/OrgIdentityTab/components/IdentitySection/IdentityModal"; @@ -154,7 +155,7 @@ export const IdentityPage = withPermission( type="submit" leftIcon={} onClick={() => { - router.push(`/org/${orgId}/members`); + router.push(`/org/${orgId}/members?selectedTab=${TabSections.Identities}`); }} className="mb-4" > diff --git a/frontend/src/views/Org/MembersPage/MembersPage.tsx b/frontend/src/views/Org/MembersPage/MembersPage.tsx index 0a9363d09..9b787c8d5 100644 --- a/frontend/src/views/Org/MembersPage/MembersPage.tsx +++ b/frontend/src/views/Org/MembersPage/MembersPage.tsx @@ -1,23 +1,38 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ +import { useRouter } from 'next/router'; +import { useEffect, useState } from 'react'; import { Tab, TabList, TabPanel, Tabs } from "@app/components/v2"; import { OrgPermissionActions, OrgPermissionSubjects } from "@app/context"; import { withPermission } from "@app/hoc"; +import { TabSections } from "@app/types"; import { OrgIdentityTab, OrgMembersTab, OrgRoleTabSection } from "./components"; -enum TabSections { - Member = "members", - Roles = "roles", - Identities = "identities" -} - export const MembersPage = withPermission( () => { + const router = useRouter(); + const { query } = router; + const selectedTab = query.selectedTab as string; + const [activeTab, setActiveTab] = useState(TabSections.Member); + + useEffect(() => { + if (selectedTab && Object.values(TabSections).includes(selectedTab as TabSections)) { + setActiveTab(selectedTab as TabSections); + } + }, [selectedTab]); + + const updateSelectedTab = (tab: TabSections) => { + router.push({ + pathname: router.pathname, + query: { ...router.query, selectedTab: tab }, + }); + } + return (

Organization Access Control

- + Users @@ -25,7 +40,7 @@ export const MembersPage = withPermission(

Machine Identities

- Organization Roles + Organization Roles diff --git a/frontend/src/views/Org/RolePage/RolePage.tsx b/frontend/src/views/Org/RolePage/RolePage.tsx index c8e78a54e..b481434cf 100644 --- a/frontend/src/views/Org/RolePage/RolePage.tsx +++ b/frontend/src/views/Org/RolePage/RolePage.tsx @@ -19,6 +19,7 @@ import { OrgPermissionActions, OrgPermissionSubjects, useOrganization } from "@a import { withPermission } from "@app/hoc"; import { useDeleteOrgRole, useGetOrgRole } from "@app/hooks/api"; import { usePopUp } from "@app/hooks/usePopUp"; +import { TabSections } from "@app/types"; import { RoleDetailsSection, RoleModal, RolePermissionsSection } from "./components"; @@ -51,7 +52,7 @@ export const RolePage = withPermission( }); handlePopUpClose("deleteOrgRole"); - router.push(`/org/${orgId}/members`); + router.push(`/org/${orgId}/members?selectedTab=${TabSections.Roles}`); } catch (err) { console.error(err); const error = err as any; diff --git a/frontend/src/views/Org/UserPage/UserPage.tsx b/frontend/src/views/Org/UserPage/UserPage.tsx index 2858d97df..4129af1aa 100644 --- a/frontend/src/views/Org/UserPage/UserPage.tsx +++ b/frontend/src/views/Org/UserPage/UserPage.tsx @@ -29,6 +29,7 @@ import { useUpdateOrgMembership } from "@app/hooks/api"; import { usePopUp } from "@app/hooks/usePopUp"; +import { TabSections } from "@app/types"; import { UserDetailsSection, UserOrgMembershipModal, UserProjectsSection } from "./components"; @@ -111,7 +112,7 @@ export const UserPage = withPermission( type="submit" leftIcon={} onClick={() => { - router.push(`/org/${orgId}/members`); + router.push(`/org/${orgId}/members?selectedTab=${TabSections.Member}`); }} className="mb-4" >