From d38c4c7368dd8cb5eaa97729194c28c8e859bcab Mon Sep 17 00:00:00 2001 From: suyao Date: Tue, 8 Apr 2025 17:09:31 +0800 Subject: [PATCH] fix(MessageContent): handle optional chaining for grounding metadata and citations --- .../pages/home/Messages/MessageContent.tsx | 24 +++++++++++-------- src/renderer/src/types/index.ts | 3 ++- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/renderer/src/pages/home/Messages/MessageContent.tsx b/src/renderer/src/pages/home/Messages/MessageContent.tsx index a0fadbb6..df35839c 100644 --- a/src/renderer/src/pages/home/Messages/MessageContent.tsx +++ b/src/renderer/src/pages/home/Messages/MessageContent.tsx @@ -86,7 +86,7 @@ const MessageContent: React.FC = ({ message: _message, model }) => { const searchResults = message?.metadata?.webSearch?.results || message?.metadata?.webSearchInfo || - message?.metadata?.groundingMetadata?.groundingChunks.map((chunk) => chunk.web) || + message?.metadata?.groundingMetadata?.groundingChunks?.map((chunk) => chunk?.web) || message?.metadata?.annotations?.map((annotation) => annotation.url_citation) || [] const citationsUrls = formattedCitations || [] @@ -222,18 +222,22 @@ const MessageContent: React.FC = ({ message: _message, model }) => { {message?.metadata?.groundingMetadata && message.status == 'success' && ( <> ({ - number: index + 1, - url: chunk.web?.uri, - title: chunk.web?.title, - showFavicon: false - }))} + citations={ + message.metadata.groundingMetadata?.groundingChunks?.map((chunk, index) => ({ + number: index + 1, + url: chunk?.web?.uri || '', + title: chunk?.web?.title, + showFavicon: false + })) || [] + } /> diff --git a/src/renderer/src/types/index.ts b/src/renderer/src/types/index.ts index ca5fbafc..7047c469 100644 --- a/src/renderer/src/types/index.ts +++ b/src/renderer/src/types/index.ts @@ -1,3 +1,4 @@ +import { GroundingMetadata } from '@google/generative-ai' import OpenAI from 'openai' import React from 'react' import { BuiltinTheme } from 'shiki' @@ -72,7 +73,7 @@ export type Message = { enabledMCPs?: MCPServer[] metadata?: { // Gemini - groundingMetadata?: any + groundingMetadata?: GroundingMetadata // Perplexity Or Openrouter citations?: string[] // OpenAI