From ec12d578625c178678e19b9068e9c95afbb0e87e Mon Sep 17 00:00:00 2001 From: Scott Wilson Date: Wed, 12 Feb 2025 20:56:07 -0800 Subject: [PATCH] fix: refine try/catch --- .../IntegrationsListPage/route.tsx | 88 +++++++++++-------- 1 file changed, 53 insertions(+), 35 deletions(-) diff --git a/frontend/src/pages/secret-manager/IntegrationsListPage/route.tsx b/frontend/src/pages/secret-manager/IntegrationsListPage/route.tsx index f58022d8d..7a5f70622 100644 --- a/frontend/src/pages/secret-manager/IntegrationsListPage/route.tsx +++ b/frontend/src/pages/secret-manager/IntegrationsListPage/route.tsx @@ -3,7 +3,12 @@ import { zodValidator } from "@tanstack/zod-adapter"; import { z } from "zod"; import { workspaceKeys } from "@app/hooks/api"; -import { fetchSecretSyncsByProjectId, secretSyncKeys } from "@app/hooks/api/secretSyncs"; +import { TIntegration } from "@app/hooks/api/integrations/types"; +import { + fetchSecretSyncsByProjectId, + secretSyncKeys, + TSecretSync +} from "@app/hooks/api/secretSyncs"; import { fetchWorkspaceIntegrations } from "@app/hooks/api/workspace/queries"; import { IntegrationsListPageTabs } from "@app/types/integrations"; @@ -20,44 +25,13 @@ export const Route = createFileRoute( validateSearch: zodValidator(IntegrationsListPageQuerySchema), beforeLoad: async ({ context, search, params: { projectId } }) => { if (!search.selectedTab) { + let secretSyncs: TSecretSync[]; + try { - const secretSyncs = await context.queryClient.ensureQueryData({ + secretSyncs = await context.queryClient.ensureQueryData({ queryKey: secretSyncKeys.list(projectId), queryFn: () => fetchSecretSyncsByProjectId(projectId) }); - - if (secretSyncs.length) { - throw redirect({ - to: "/secret-manager/$projectId/integrations", - params: { - projectId - }, - search: { selectedTab: IntegrationsListPageTabs.SecretSyncs } - }); - } - - const integrations = await context.queryClient.ensureQueryData({ - queryKey: workspaceKeys.getWorkspaceIntegrations(projectId), - queryFn: () => fetchWorkspaceIntegrations(projectId) - }); - - if (integrations.length) { - throw redirect({ - to: "/secret-manager/$projectId/integrations", - params: { - projectId - }, - search: { selectedTab: IntegrationsListPageTabs.NativeIntegrations } - }); - } - - throw redirect({ - to: "/secret-manager/$projectId/integrations", - params: { - projectId - }, - search: { selectedTab: IntegrationsListPageTabs.SecretSyncs } - }); } catch { throw redirect({ to: "/secret-manager/$projectId/integrations", @@ -67,6 +41,50 @@ export const Route = createFileRoute( search: { selectedTab: IntegrationsListPageTabs.NativeIntegrations } }); } + + if (secretSyncs.length) { + throw redirect({ + to: "/secret-manager/$projectId/integrations", + params: { + projectId + }, + search: { selectedTab: IntegrationsListPageTabs.SecretSyncs } + }); + } + + let integrations: TIntegration[]; + try { + integrations = await context.queryClient.ensureQueryData({ + queryKey: workspaceKeys.getWorkspaceIntegrations(projectId), + queryFn: () => fetchWorkspaceIntegrations(projectId) + }); + } catch { + throw redirect({ + to: "/secret-manager/$projectId/integrations", + params: { + projectId + }, + search: { selectedTab: IntegrationsListPageTabs.SecretSyncs } + }); + } + + if (integrations.length) { + throw redirect({ + to: "/secret-manager/$projectId/integrations", + params: { + projectId + }, + search: { selectedTab: IntegrationsListPageTabs.NativeIntegrations } + }); + } + + throw redirect({ + to: "/secret-manager/$projectId/integrations", + params: { + projectId + }, + search: { selectedTab: IntegrationsListPageTabs.SecretSyncs } + }); } return {