diff --git a/client/src/components/PromptsTab.tsx b/client/src/components/PromptsTab.tsx index c697d52..5fdad82 100644 --- a/client/src/components/PromptsTab.tsx +++ b/client/src/components/PromptsTab.tsx @@ -43,7 +43,7 @@ const PromptsTab = ({ clearPrompts: () => void; getPrompt: (name: string, args: Record) => void; selectedPrompt: Prompt | null; - setSelectedPrompt: (prompt: Prompt) => void; + setSelectedPrompt: (prompt: Prompt | null) => void; handleCompletion: ( ref: PromptReference | ResourceReference, argName: string, @@ -89,7 +89,10 @@ const PromptsTab = ({ { + clearPrompts(); + setSelectedPrompt(null); + }} setSelectedItem={(prompt) => { setSelectedPrompt(prompt); setPromptArgs({}); diff --git a/client/src/components/ResourcesTab.tsx b/client/src/components/ResourcesTab.tsx index ac9a824..c0f8203 100644 --- a/client/src/components/ResourcesTab.tsx +++ b/client/src/components/ResourcesTab.tsx @@ -104,7 +104,6 @@ const ResourcesTab = ({ if (selectedTemplate) { const uri = fillTemplate(selectedTemplate.uriTemplate, templateValues); readResource(uri); - setSelectedTemplate(null); // We don't have the full Resource object here, so we create a partial one setSelectedResource({ uri, name: uri } as Resource); } @@ -116,7 +115,13 @@ const ResourcesTab = ({ { + clearResources(); + // Condition to check if selected resource is not resource template's resource + if (!selectedTemplate) { + setSelectedResource(null); + } + }} setSelectedItem={(resource) => { setSelectedResource(resource); readResource(resource.uri); @@ -139,7 +144,14 @@ const ResourcesTab = ({ { + clearResourceTemplates(); + // Condition to check if selected resource is resource template's resource + if (selectedTemplate) { + setSelectedResource(null); + } + setSelectedTemplate(null); + }} setSelectedItem={(template) => { setSelectedTemplate(template); setSelectedResource(null);