From 16c06dacfe77b2fd0b412208995a5c2b8a97db92 Mon Sep 17 00:00:00 2001 From: Piyush Gupta Date: Wed, 19 Nov 2025 14:09:28 +0530 Subject: [PATCH] fix: orgid in routing --- .../src/components/navigation/NavHeader.tsx | 14 +- .../SecretDashboardPathBreadcrumb.tsx | 5 +- frontend/src/const/routes.ts | 324 +- frontend/src/helpers/project.ts | 16 +- frontend/src/layouts/KmsLayout/KmsLayout.tsx | 18 +- .../components/NavBar/Navbar.tsx | 25 +- .../components/OrgNavBar/OrgNavBar.tsx | 28 +- frontend/src/layouts/PamLayout/PamLayout.tsx | 21 +- .../PkiManagerLayout/PkiManagerLayout.tsx | 33 +- .../SecretManagerLayout.tsx | 27 +- .../SecretScanningLayout.tsx | 20 +- frontend/src/layouts/SshLayout/SshLayout.tsx | 17 +- .../src/pages/auth/LoginPage/Login.utils.tsx | 10 +- .../components/PkiCollectionModal.tsx | 6 +- .../components/PkiCollectionTable.tsx | 11 +- .../pages/cert-manager/AlertingPage/route.tsx | 2 +- .../CertAuthDetailsByIDPage.tsx | 14 +- .../CertAuthDetailsByIDPage/route.tsx | 5 +- .../components/CaTable.tsx | 11 +- .../CertificateAuthoritiesPage/route.tsx | 2 +- .../IntegrationsListPage/route.tsx | 2 +- .../PkiCollectionDetailsByIDPage.tsx | 14 +- .../PkiCollectionDetailsByIDPage/routes.tsx | 5 +- .../PkiSubscriberDetailsByIDPage.tsx | 8 +- .../PkiSubscriberDetailsByIDPage/route.tsx | 5 +- .../components/PkiSubscribersTable.tsx | 5 +- .../cert-manager/PkiSubscribersPage/route.tsx | 2 +- .../PkiSyncDetailsByIDPage/route.tsx | 4 +- .../PkiTemplateListPage/route.tsx | 2 +- .../pages/cert-manager/PoliciesPage/route.tsx | 2 +- .../pages/cert-manager/SettingsPage/route.tsx | 2 +- frontend/src/pages/cert-manager/layout.tsx | 2 +- frontend/src/pages/kms/KmipPage/route.tsx | 2 +- frontend/src/pages/kms/OverviewPage/route.tsx | 2 +- frontend/src/pages/kms/SettingsPage/route.tsx | 2 +- frontend/src/pages/kms/layout.tsx | 2 +- .../pages/middlewares/inject-org-details.tsx | 11 +- .../middlewares/restrict-login-signup.tsx | 3 +- .../AccessManagementPage/route.tsx | 2 +- .../components/AppConnectionRow.tsx | 4 +- .../AppConnectionsPage/route.tsx | 2 +- .../OauthCallbackPage/route.tsx | 2 +- .../organization/AuditLogsPage/route.tsx | 2 +- .../pages/organization/BillingPage/route.tsx | 7 +- .../GroupDetailsByIDPage/route.tsx | 2 +- .../IdentityProjectRow.tsx | 3 + .../IdentityDetailsByIDPage/route.tsx | 2 +- .../organization/NetworkingPage/route.tsx | 2 +- .../ProjectsPage/ProjectsPage.tsx | 16 + .../components/AllProjectView.tsx | 5 +- .../ProjectsPage/components/MyProjectView.tsx | 2 + .../pages/organization/ProjectsPage/route.tsx | 2 +- .../pages/organization/RoleByIDPage/route.tsx | 9 +- .../organization/SecretSharingPage/route.tsx | 2 +- .../SettingsPage/OauthCallbackPage/route.tsx | 2 +- .../pages/organization/SettingsPage/route.tsx | 2 +- .../UserProjectsSection/UserProjectRow.tsx | 3 + .../UserDetailsByIDPage/route.tsx | 2 +- .../components/FolderBreadCrumbs.tsx | 2 +- .../src/pages/pam/PamAccountsPage/route.tsx | 6 +- .../src/pages/pam/PamResourcesPage/route.tsx | 2 +- .../PamSessionByIDPage.tsx | 6 +- .../pages/pam/PamSessionsByIDPage/route.tsx | 4 +- .../src/pages/pam/PamSessionsPage/route.tsx | 2 +- frontend/src/pages/pam/SettingsPage/route.tsx | 2 +- frontend/src/pages/pam/layout.tsx | 2 +- .../AccessControlPage/route-cert-manager.tsx | 2 +- .../project/AccessControlPage/route-kms.tsx | 2 +- .../project/AccessControlPage/route-pam.tsx | 2 +- .../route-secret-manager.tsx | 2 +- .../route-secret-scanning.tsx | 2 +- .../project/AccessControlPage/route-ssh.tsx | 2 +- .../AppConnectionsPage/route-cert-manager.tsx | 2 +- .../route-secret-manager.tsx | 2 +- .../route-secret-scanning.tsx | 2 +- .../AuditLogsPage/route-cert-manager.tsx | 2 +- .../pages/project/AuditLogsPage/route-kms.tsx | 2 +- .../pages/project/AuditLogsPage/route-pam.tsx | 2 +- .../AuditLogsPage/route-secret-manager.tsx | 2 +- .../AuditLogsPage/route-secret-scanning.tsx | 2 +- .../pages/project/AuditLogsPage/route-ssh.tsx | 2 +- .../route-cert-manager.tsx | 5 +- .../GroupDetailsByIDPage/route-kms.tsx | 5 +- .../GroupDetailsByIDPage/route-pam.tsx | 5 +- .../route-secret-manager.tsx | 5 +- .../route-secret-scanning.tsx | 5 +- .../GroupDetailsByIDPage/route-ssh.tsx | 5 +- .../route-cert-manager.tsx | 5 +- .../IdentityDetailsByIDPage/route-kms.tsx | 5 +- .../IdentityDetailsByIDPage/route-pam.tsx | 5 +- .../route-secret-manager.tsx | 5 +- .../route-secret-scanning.tsx | 5 +- .../IdentityDetailsByIDPage/route-ssh.tsx | 5 +- .../route-cert-manager.tsx | 5 +- .../MemberDetailsByIDPage/route-kms.tsx | 5 +- .../MemberDetailsByIDPage/route-pam.tsx | 5 +- .../route-secret-manager.tsx | 5 +- .../route-secret-scanning.tsx | 5 +- .../MemberDetailsByIDPage/route-ssh.tsx | 5 +- .../route-cert-manager.tsx | 5 +- .../RoleDetailsBySlugPage/route-kms.tsx | 5 +- .../RoleDetailsBySlugPage/route-pam.tsx | 5 +- .../route-secret-manager.tsx | 5 +- .../route-secret-scanning.tsx | 5 +- .../RoleDetailsBySlugPage/route-ssh.tsx | 5 +- .../CommitDetailsPage/CommitDetailsPage.tsx | 14 +- .../RollbackPreviewTab/RollbackPreviewTab.tsx | 6 +- .../components/RollbackPreviewTab/route.tsx | 11 +- .../CommitDetailsPage/route.tsx | 8 +- .../CommitsPage/CommitsPage.tsx | 12 +- .../secret-manager/CommitsPage/route.tsx | 8 +- .../secret-manager/IPAllowlistPage/route.tsx | 2 +- .../IntegrationsDetailsByIDPage/route.tsx | 4 +- .../IntegrationsListPage.utils.tsx | 91 +- .../NativeIntegrationsTab/IntegrationRow.tsx | 11 +- .../NativeIntegrationsTab.tsx | 5 +- .../IntegrationsListPage/route.tsx | 25 +- .../OverviewPage/OverviewPage.tsx | 13 +- .../FolderBreadCrumbs/FolderBreadCrumbs.tsx | 2 +- .../QuickSearchDynamicSecretItem.tsx | 2 +- .../components/QuickSearchFolderItem.tsx | 2 +- .../components/QuickSearchSecretItem.tsx | 4 +- .../QuickSearchSecretRotationItem.tsx | 2 +- .../secret-manager/OverviewPage/route.tsx | 4 +- .../SecretApprovalsPage/route.tsx | 2 +- .../SecretDashboardPage.tsx | 11 +- .../FolderBreadCrumbs/FolderBreadCrumbs.tsx | 2 +- .../SecretDashboardPage/route.tsx | 16 +- .../SecretRotationPage/SecretRotationPage.tsx | 14 +- .../SecretRotationPage/route.tsx | 2 +- .../SecretSyncDetailsByIDPage/route.tsx | 4 +- .../secret-manager/SettingsPage/route.tsx | 2 +- .../AwsParameterStoreAuthorizePage.tsx | 6 +- .../AwsParameterStoreAuthorizePage/route.tsx | 4 +- .../AwsParamterStoreConfigurePage.tsx | 7 +- .../AwsParameterStoreConfigurePage/route.tsx | 4 +- .../AwsSecretManagerAuthorizePage.tsx | 7 +- .../AwsSecretManagerAuthorizePage/route.tsx | 4 +- .../AwsSecretManagerConfigurePage.tsx | 6 +- .../AwsSecretManagerConfigurePage/route.tsx | 4 +- .../AzureAppConfigurationConfigurePage.tsx | 7 +- .../route.tsx | 4 +- ...AzureAppConfigurationOauthCallbackPage.tsx | 7 +- .../route.tsx | 4 +- .../AzureDevopsAuthorizePage.tsx | 7 +- .../AzureDevopsAuthorizePage/route.tsx | 4 +- .../AzureDevopsConfigurePage.tsx | 7 +- .../AzureDevopsConfigurePage/route.tsx | 4 +- .../AzureKeyVaultAuthorizePage/route.tsx | 4 +- .../AzureKeyVaultConfigurePage.tsx | 7 +- .../AzureKeyVaultConfigurePage/route.tsx | 4 +- .../AzureKeyVaultOauthCallback.tsx | 7 +- .../AzureKeyVaultOauthCallbackPage/route.tsx | 4 +- .../BitbucketConfigurePage.tsx | 7 +- .../BitbucketConfigurePage/route.tsx | 4 +- .../BitbucketOauthCallbackPage.tsx | 6 +- .../BitbucketOauthCallbackPage/route.tsx | 4 +- .../ChecklyAuthorizePage.tsx | 6 +- .../ChecklyAuthorizePage/route.tsx | 4 +- .../ChecklyConfigurePage.tsx | 7 +- .../ChecklyConfigurePage/route.tsx | 4 +- .../CircleCIAuthorizePage.tsx | 7 +- .../CircleCIAuthorizePage/route.tsx | 4 +- .../CircleCIConfigurePage.tsx | 7 +- .../CircleCIConfigurePage/route.tsx | 4 +- .../Cloud66AuthorizePage.tsx | 7 +- .../Cloud66AuthorizePage/route.tsx | 4 +- .../Cloud66ConfigurePage.tsx | 7 +- .../Cloud66ConfigurePage/route.tsx | 4 +- .../CloudflarePagesAuthorizePage.tsx | 7 +- .../CloudflarePagesAuthorizePage/route.tsx | 4 +- .../CloudflarePagesConfigurePage.tsx | 7 +- .../CloudflarePagesConfigurePage/route.tsx | 4 +- .../CloudflareWorkersAuthorizePage.tsx | 7 +- .../CloudflareWorkersAuthorizePage/route.tsx | 4 +- .../CloudflareWorkersConfigurePage.tsx | 7 +- .../CloudflareWorkersConfigurePage/route.tsx | 4 +- .../CodefreshAuthorizePage.tsx | 7 +- .../CodefreshAuthorizePage/route.tsx | 4 +- .../CodefreshConfigurePage.tsx | 7 +- .../CodefreshConfigurePage/route.tsx | 4 +- .../DatabricksAuthorizePage.tsx | 7 +- .../DatabricksAuthorizePage/route.tsx | 4 +- .../DatabricksConfigurePage.tsx | 7 +- .../DatabricksConfigurePage/route.tsx | 4 +- .../DigitalOceanAppPlatformAuthorizePage.tsx | 7 +- .../route.tsx | 4 +- .../DigitalOceanAppPlatformConfigurePage.tsx | 7 +- .../route.tsx | 4 +- .../FlyioAuthorizePage/FlyioAuthorizePage.tsx | 7 +- .../integrations/FlyioAuthorizePage/route.tsx | 4 +- .../FlyioConfigurePage/FlyioConfigurePage.tsx | 7 +- .../integrations/FlyioConfigurePage/route.tsx | 4 +- .../GcpSecretManagerAuthorizePage.tsx | 7 +- .../GcpSecretManagerAuthorizePage/route.tsx | 4 +- .../GcpSecretManagerConfigurePage.tsx | 7 +- .../GcpSecretManagerConfigurePage/route.tsx | 4 +- .../GcpSecretManagerOauthCallbackPage.tsx | 7 +- .../route.tsx | 4 +- .../GithubAuthorizePage.tsx | 7 +- .../GithubAuthorizePage/route.tsx | 4 +- .../GithubConfigurePage.tsx | 7 +- .../GithubConfigurePage/route.tsx | 4 +- .../GithubOauthCallbackPage.tsx | 7 +- .../GithubOauthCallbackPage/route.tsx | 4 +- .../GitlabAuthorizePage/route.tsx | 4 +- .../GitlabConfigurePage.tsx | 7 +- .../GitlabConfigurePage/route.tsx | 4 +- .../GitlabOauthCallbackPage/route.tsx | 4 +- .../HashicorpVaultAuthorizePage.tsx | 7 +- .../HashicorpVaultAuthorizePage/route.tsx | 4 +- .../HashicorpVaultConfigurePage.tsx | 7 +- .../HashicorpVaultConfigurePage/route.tsx | 4 +- .../HasuraCloudAuthorizePage.tsx | 7 +- .../HasuraCloudAuthorizePage/route.tsx | 4 +- .../HasuraCloudConfigurePage.tsx | 7 +- .../HasuraCloudConfigurePage/route.tsx | 4 +- .../HerokuConfigurePage.tsx | 7 +- .../HerokuConfigurePage/route.tsx | 4 +- .../HerokuOauthCallbackPage/route.tsx | 4 +- .../LaravelForgeAuthorizePage.tsx | 6 +- .../LaravelForgeAuthorizePage/route.tsx | 4 +- .../LaravelForgeConfigurePage.tsx | 7 +- .../LaravelForgeConfigurePage/route.tsx | 4 +- .../NetlifyConfigurePage.tsx | 7 +- .../NetlifyConfigurePage/route.tsx | 4 +- .../NetlifyOauthCallbackPage.tsx | 7 +- .../NetlifyOauthCallbackPage/route.tsx | 4 +- .../NorthflankAuthorizePage.tsx | 7 +- .../NorthflankAuthorizePage/route.tsx | 4 +- .../NorthflankConfigurePage.tsx | 7 +- .../NorthflankConfigurePage/route.tsx | 4 +- .../OctopusDeployAuthorizePage.tsx | 7 +- .../OctopusDeployAuthorizePage/route.tsx | 4 +- .../OctopusDeployConfigurePage.tsx | 7 +- .../OctopusDeployConfigurePage/route.tsx | 4 +- .../QoveryAuthorizePage.tsx | 7 +- .../QoveryAuthorizePage/route.tsx | 4 +- .../QoveryConfigurePage.tsx | 7 +- .../QoveryConfigurePage/route.tsx | 4 +- .../RailwayAuthorizePage.tsx | 7 +- .../RailwayAuthorizePage/route.tsx | 4 +- .../RailwayConfigurePage.tsx | 6 +- .../RailwayConfigurePage/route.tsx | 4 +- .../RenderAuthorizePage.tsx | 7 +- .../RenderAuthorizePage/route.tsx | 4 +- .../RenderConfigurePage.tsx | 7 +- .../RenderConfigurePage/route.tsx | 4 +- .../RundeckAuthorizePage.tsx | 6 +- .../RundeckAuthorizePage/route.tsx | 4 +- .../RundeckConfigurePage.tsx | 6 +- .../RundeckConfigurePage/route.tsx | 4 +- .../SelectIntegrationAuthPage.tsx | 6 +- .../SelectIntegrationAuthPage/route.tsx | 4 +- .../SupabaseAuthorizePage.tsx | 6 +- .../SupabaseAuthorizePage/route.tsx | 4 +- .../SupabaseConfigurePage.tsx | 6 +- .../SupabaseConfigurePage/route.tsx | 4 +- .../TeamcityAuthorizePage.tsx | 6 +- .../TeamcityAuthorizePage/route.tsx | 4 +- .../TeamcityConfigurePage.tsx | 7 +- .../TeamcityConfigurePage/route.tsx | 4 +- .../TerraformCloudAuthorizePage.tsx | 7 +- .../TerraformCloudAuthorizePage/route.tsx | 4 +- .../TerraformCloudConfigurePage.tsx | 6 +- .../TerraformCloudConfigurePage/route.tsx | 4 +- .../TravisCIAuthorizePage.tsx | 6 +- .../TravisCIAuthorizePage/route.tsx | 4 +- .../TravisCIConfigurePage.tsx | 6 +- .../TravisCIConfigurePage/route.tsx | 4 +- .../VercelConfigurePage.tsx | 7 +- .../VercelConfigurePage/route.tsx | 4 +- .../VercelOauthCallbackPage.tsx | 7 +- .../VercelOauthCallbackPage/route.tsx | 4 +- .../WindmillAuthorizePage.tsx | 6 +- .../WindmillAuthorizePage/route.tsx | 4 +- .../WindmillConfigurePage.tsx | 7 +- .../WindmillConfigurePage/route.tsx | 4 +- ...zure-app-configurations-oauth-redirect.tsx | 13 +- .../route-azure-key-vault-oauth-redirect.tsx | 13 +- .../route-bitbucket-oauth-redirect.tsx | 13 +- .../integrations/route-gcp-oauth-redirect.tsx | 13 +- .../route-github-oauth-redirect.tsx | 13 +- .../route-gitlab-oauth-redirect.tsx | 13 +- .../route-heroku-oauth-redirect.tsx | 13 +- .../route-netlify-oauth-redirect.tsx | 13 +- .../route-vercel-oauth-redirect.tsx | 13 +- frontend/src/pages/secret-manager/layout.tsx | 2 +- .../redirects/redirect-approval-page.tsx | 4 +- .../SecretScanningDataSourceByIdPage.tsx | 5 +- .../components/SecretScanningResourceRow.tsx | 5 +- .../components/SecretScanningScanRow.tsx | 6 +- .../route.tsx | 4 +- .../SecretScanningDataSourceRow.tsx | 7 +- .../SecretScanningDataSourcesPage/route.tsx | 2 +- .../SecretScanningFindingsPage/route.tsx | 2 +- .../secret-scanning/SettingsPage/route.tsx | 2 +- frontend/src/pages/secret-scanning/layout.tsx | 2 +- frontend/src/pages/ssh/SettingsPage/route.tsx | 2 +- .../pages/ssh/SshCaByIDPage/SshCaByIDPage.tsx | 15 +- .../src/pages/ssh/SshCaByIDPage/route.tsx | 4 +- .../ssh/SshCasPage/components/SshCaModal.tsx | 6 +- .../ssh/SshCasPage/components/SshCaTable.tsx | 11 +- frontend/src/pages/ssh/SshCasPage/route.tsx | 4 +- frontend/src/pages/ssh/SshCertsPage/route.tsx | 2 +- .../SshHostGroupDetailsByIDPage.tsx | 14 +- .../ssh/SshHostGroupDetailsByIDPage/route.tsx | 4 +- .../components/SshHostGroupsTable.tsx | 14 +- frontend/src/pages/ssh/SshHostsPage/route.tsx | 2 +- frontend/src/pages/ssh/layout.tsx | 2 +- frontend/src/routeTree.gen.ts | 6805 +++++++++-------- frontend/src/routes.ts | 64 +- 312 files changed, 4776 insertions(+), 4324 deletions(-) diff --git a/frontend/src/components/navigation/NavHeader.tsx b/frontend/src/components/navigation/NavHeader.tsx index a912980f1..837fae807 100644 --- a/frontend/src/components/navigation/NavHeader.tsx +++ b/frontend/src/components/navigation/NavHeader.tsx @@ -70,7 +70,8 @@ export default function NavHeader({ {currentOrg?.name?.charAt(0)} {currentOrg?.name} @@ -90,8 +91,8 @@ export default function NavHeader({ {pageName === "Secrets" ? ( {pageName} @@ -126,8 +127,8 @@ export default function NavHeader({
{userAvailableEnvs?.find(({ slug }) => slug === currentEnv)?.name} @@ -188,8 +189,9 @@ export default function NavHeader({
) : ( { + const { currentOrg } = useOrganization(); const [, isCopying, setIsCopying] = useTimedReset({ initialState: false }); @@ -69,8 +71,9 @@ export const SecretDashboardPathBreadcrumb = ({ ) : ( { switch (type) { case ProjectType.SecretManager: - return "/projects/secret-management/$projectId"; + return "/organizations/$orgId/projects/secret-management/$projectId"; case ProjectType.CertificateManager: - return "/projects/cert-management/$projectId"; + return "/organizations/$orgId/projects/cert-management/$projectId"; default: - return `/projects/${type}/$projectId` as const; + return `/organizations/$orgId/projects/${type}/$projectId` as const; } }; @@ -77,15 +77,15 @@ export const getProjectBaseURL = (type: ProjectType) => { export const getProjectHomePage = (type: ProjectType, environments: ProjectEnv[]) => { switch (type) { case ProjectType.SecretManager: - return "/projects/secret-management/$projectId/overview" as const; + return "/organizations/$orgId/projects/secret-management/$projectId/overview" as const; case ProjectType.CertificateManager: - return "/projects/cert-management/$projectId/policies" as const; + return "/organizations/$orgId/projects/cert-management/$projectId/policies" as const; case ProjectType.SecretScanning: - return `/projects/${type}/$projectId/data-sources` as const; + return `/organizations/$orgId/projects/${type}/$projectId/data-sources` as const; case ProjectType.PAM: - return `/projects/${type}/$projectId/accounts` as const; + return `/organizations/$orgId/projects/${type}/$projectId/accounts` as const; default: - return `/projects/${type}/$projectId/overview` as const; + return `/organizations/$orgId/projects/${type}/$projectId/overview` as const; } }; diff --git a/frontend/src/layouts/KmsLayout/KmsLayout.tsx b/frontend/src/layouts/KmsLayout/KmsLayout.tsx index eef78000a..9a5dc5aee 100644 --- a/frontend/src/layouts/KmsLayout/KmsLayout.tsx +++ b/frontend/src/layouts/KmsLayout/KmsLayout.tsx @@ -2,12 +2,13 @@ import { Link, Outlet, useLocation } from "@tanstack/react-router"; import { motion } from "framer-motion"; import { Tab, TabList, Tabs } from "@app/components/v2"; -import { useProject, useProjectPermission } from "@app/context"; +import { useOrganization, useProject, useProjectPermission } from "@app/context"; import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePrivilegeModeBanner"; export const KmsLayout = () => { const { currentProject } = useProject(); + const { currentOrg } = useOrganization(); const { assumedPrivilegeDetails } = useProjectPermission(); const location = useLocation(); @@ -27,24 +28,27 @@ export const KmsLayout = () => { {({ isActive }) => Overview} {({ isActive }) => KMIP} @@ -62,16 +66,18 @@ export const KmsLayout = () => { )} {({ isActive }) => Audit Logs} diff --git a/frontend/src/layouts/OrganizationLayout/components/NavBar/Navbar.tsx b/frontend/src/layouts/OrganizationLayout/components/NavBar/Navbar.tsx index 6be963e2b..499465f0a 100644 --- a/frontend/src/layouts/OrganizationLayout/components/NavBar/Navbar.tsx +++ b/frontend/src/layouts/OrganizationLayout/components/NavBar/Navbar.tsx @@ -282,7 +282,7 @@ export const Navbar = () => {
- + infisical logo
@@ -322,7 +322,8 @@ export const Navbar = () => { type="button" onClick={async () => { navigate({ - to: "/organization/projects", + to: "/organizations/$orgId/projects", + params: { orgId: currentOrg.id }, search: (search) => ({ ...search, subOrganization: undefined }) }); if (isSubOrganization) { @@ -407,7 +408,8 @@ export const Navbar = () => { { navigate({ - to: "/organization/projects", + to: "/organizations/$orgId/projects", + params: { orgId: currentOrg.id }, search: (prev) => ({ ...prev, subOrganization: subOrg.name }) }); await router.invalidate({ sync: true }).catch(() => null); @@ -481,7 +483,7 @@ export const Navbar = () => { "min-w-6 bg-transparent text-mineshaft-200 hover:!bg-transparent hover:underline [&>svg]:!text-sub-org" )} > - + {currentOrg.subOrganization.name} @@ -511,7 +513,8 @@ export const Navbar = () => { { navigate({ - to: "/organization/projects", + to: "/organizations/$orgId/projects", + params: { orgId: currentOrg.id }, search: (prev) => ({ ...prev, subOrganization: subOrg.name }) }); await router.invalidate({ sync: true }).catch(() => null); @@ -593,7 +596,8 @@ export const Navbar = () => { isAllowed ? ( { {(isAllowed) => isAllowed ? ( {
- +