From 095af8cf4b4c5d097bcf526b6ff74a31e412776f Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Tue, 2 Dec 2025 08:07:53 -0800 Subject: [PATCH] Refresh query when plugins reload in `useTemplateFunctionConfig` hook --- src-web/hooks/useTemplateFunctionConfig.ts | 26 +++++++++++++--------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src-web/hooks/useTemplateFunctionConfig.ts b/src-web/hooks/useTemplateFunctionConfig.ts index cc34f1fb..e2dd12a7 100644 --- a/src-web/hooks/useTemplateFunctionConfig.ts +++ b/src-web/hooks/useTemplateFunctionConfig.ts @@ -1,12 +1,14 @@ import { useQuery } from '@tanstack/react-query'; -import type { - Folder, - GrpcRequest, - HttpRequest, - WebsocketRequest, - Workspace, +import { + environmentsAtom, + type Folder, + type GrpcRequest, + type HttpRequest, + httpResponsesAtom, + pluginsAtom, + type WebsocketRequest, + type Workspace, } from '@yaakapp-internal/models'; -import { environmentsAtom, httpResponsesAtom } from '@yaakapp-internal/models'; import type { GetTemplateFunctionConfigResponse, JsonPrimitive } from '@yaakapp-internal/plugins'; import { useAtomValue } from 'jotai'; import { md5 } from 'js-md5'; @@ -19,6 +21,7 @@ export function useTemplateFunctionConfig( values: Record, model: HttpRequest | GrpcRequest | WebsocketRequest | Folder | Workspace, ) { + const pluginsKey = useAtomValue(pluginsAtom); const workspaceId = useAtomValue(activeWorkspaceIdAtom); const environmentId = useAtomValue(activeEnvironmentIdAtom); const responses = useAtomValue(httpResponsesAtom); @@ -40,10 +43,11 @@ export function useTemplateFunctionConfig( model, functionName, values, - responseKey, - workspaceId, - environmentId, - environmentsKey, + workspaceId, // Refresh when the active workspace changes + environmentId, // Refresh when the active environment changes + environmentsKey, // Refresh when environments change + responseKey, // Refresh when responses change + pluginsKey, // Refresh when plugins reload ], placeholderData: (prev) => prev, // Keep previous data on refetch queryFn: async () => {