From 1206f94cf3e4d0abf40ff90b8b02a0a61ff3c04a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl-Gerhard=20Lindesva=CC=88rd?= Date: Wed, 22 Oct 2025 17:52:27 +0200 Subject: [PATCH] fix: refetch and navigation when creating integration --- apps/start/src/modals/add-integration.tsx | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/apps/start/src/modals/add-integration.tsx b/apps/start/src/modals/add-integration.tsx index abd077fd..24fda47e 100644 --- a/apps/start/src/modals/add-integration.tsx +++ b/apps/start/src/modals/add-integration.tsx @@ -6,8 +6,10 @@ import { WebhookIntegrationForm } from '@/components/integrations/forms/webhook- import { IntegrationCardContent } from '@/components/integrations/integration-card'; import { INTEGRATIONS } from '@/components/integrations/integrations'; import { SheetContent } from '@/components/ui/sheet'; +import { useAppParams } from '@/hooks/use-app-params'; import type { IIntegrationConfig } from '@openpanel/validation'; import { useQuery, useQueryClient } from '@tanstack/react-query'; +import { useNavigate } from '@tanstack/react-router'; import { useQueryState } from 'nuqs'; import { toast } from 'sonner'; import { popModal } from '.'; @@ -18,6 +20,7 @@ interface Props { type: IIntegrationConfig['type']; } export default function AddIntegration(props: Props) { + const { organizationId } = useAppParams(); const trpc = useTRPC(); const query = useQuery( trpc.integration.get.queryOptions( @@ -43,20 +46,21 @@ export default function AddIntegration(props: Props) { ); }; - const [tab, setTab] = useQueryState('tab', { - shallow: false, - }); + const navigate = useNavigate(); const client = useQueryClient(); const handleSuccess = () => { toast.success('Integration created'); popModal(); - client.invalidateQueries(trpc.integration.list.queryFilter()); + client.invalidateQueries(trpc.integration.list.pathFilter()); client.invalidateQueries( trpc.integration.get.queryFilter({ id: props.id }), ); - if (tab !== undefined) { - setTab('installed'); - } + navigate({ + to: '/$organizationId/integrations/installed', + params: { + organizationId, + }, + }); }; const renderForm = () => {