From 313a7873abf56598f4f7f44e8421b9026c2ceec1 Mon Sep 17 00:00:00 2001 From: erocheleau Date: Fri, 12 Dec 2025 14:51:19 -0500 Subject: [PATCH 1/2] fix citation title undefined throwing an unhandled exception --- .../common/generated-answer/generated-answer-common.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/atomic/src/components/common/generated-answer/generated-answer-common.tsx b/packages/atomic/src/components/common/generated-answer/generated-answer-common.tsx index 993a3bab47b..c77c76d080a 100644 --- a/packages/atomic/src/components/common/generated-answer/generated-answer-common.tsx +++ b/packages/atomic/src/components/common/generated-answer/generated-answer-common.tsx @@ -182,7 +182,9 @@ export class GeneratedAnswerCommon { const {title} = citation; const {i18n} = this.props.getBindings(); - return title.trim() !== '' + const normalizedTitle = (title ?? '').trim(); + + return normalizedTitle ? citation : {...citation, title: i18n.t('no-title')}; } From 5ba636f3fd0cec4cdf92868e6968c2b76338ba1f Mon Sep 17 00:00:00 2001 From: erocheleau Date: Fri, 9 Jan 2026 17:25:44 -0500 Subject: [PATCH 2/2] fixed in the new generated-answer-utils also --- .../generated-answer-utils.spec.ts | 15 +++++++++++++++ .../generated-answer/generated-answer-utils.ts | 4 +++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/atomic/src/components/common/generated-answer/generated-answer-utils.spec.ts b/packages/atomic/src/components/common/generated-answer/generated-answer-utils.spec.ts index f91c7ce9a8d..c2b7407f07e 100644 --- a/packages/atomic/src/components/common/generated-answer/generated-answer-utils.spec.ts +++ b/packages/atomic/src/components/common/generated-answer/generated-answer-utils.spec.ts @@ -43,6 +43,21 @@ describe('generated-answer-utils', () => { expect(result.title).toBe('No title'); }); + it('should return citation with fallback title when title is missing', () => { + // @ts-expect-error Test fixture with partial mock + const citation: GeneratedAnswerCitation = { + id: 'test-2', + uri: 'https://example.com', + }; + + const result = getCitationWithTitle(citation, i18n); + + expect(result).not.toBe(citation); + expect(result.id).toBe('test-2'); + expect(result.uri).toBe('https://example.com'); + expect(result.title).toBe('No title'); + }); + it('should return citation with fallback title when title is only whitespace', () => { // @ts-expect-error Test fixture with partial mock const citation: GeneratedAnswerCitation = { diff --git a/packages/atomic/src/components/common/generated-answer/generated-answer-utils.ts b/packages/atomic/src/components/common/generated-answer/generated-answer-utils.ts index ac3e7ba3db1..1b0462d02ba 100644 --- a/packages/atomic/src/components/common/generated-answer/generated-answer-utils.ts +++ b/packages/atomic/src/components/common/generated-answer/generated-answer-utils.ts @@ -10,7 +10,9 @@ export function getCitationWithTitle( i18n: i18n ): GeneratedAnswerCitation { const {title} = citation; - return title.trim() !== '' + const normalizedTitle = (title ?? '').trim(); + + return normalizedTitle !== '' ? citation : {...citation, title: i18n.t('no-title')}; }