From 8c1786008030d44fda8edcabb1e90e78b0628fe5 Mon Sep 17 00:00:00 2001 From: Oleh Rybak Date: Wed, 6 May 2026 11:27:07 +0200 Subject: [PATCH 1/5] feat(metadata): pass trackEvent callback to metadata components --- package.json | 4 ++-- src/elements/content-sidebar/MetadataInstanceEditor.tsx | 3 +++ src/elements/content-sidebar/MetadataSidebar.js | 1 + src/elements/content-sidebar/MetadataSidebarRedesign.tsx | 4 ++++ yarn.lock | 8 ++++---- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 852f64788d..565854435d 100644 --- a/package.json +++ b/package.json @@ -136,7 +136,7 @@ "@box/frontend": "^11.0.1", "@box/item-icon": "^2.32.14", "@box/languages": "^1.0.0", - "@box/metadata-editor": "^1.61.5", + "@box/metadata-editor": "^1.69.6", "@box/metadata-filter": "^1.80.23", "@box/metadata-view": "^1.53.26", "@box/react-virtualized": "^9.22.3-rc-box.10", @@ -299,7 +299,7 @@ "@box/copy-input": "^1.40.21", "@box/content-field": "^1.40.23", "@box/item-icon": "^2.32.14", - "@box/metadata-editor": "^1.61.5", + "@box/metadata-editor": "^1.69.6", "@box/metadata-filter": "^1.80.23", "@box/metadata-view": "^1.53.26", "@box/react-virtualized": "^9.22.3-rc-box.10", diff --git a/src/elements/content-sidebar/MetadataInstanceEditor.tsx b/src/elements/content-sidebar/MetadataInstanceEditor.tsx index bfc6e82e7c..4fe986fb8b 100644 --- a/src/elements/content-sidebar/MetadataInstanceEditor.tsx +++ b/src/elements/content-sidebar/MetadataInstanceEditor.tsx @@ -37,6 +37,7 @@ export interface MetadataInstanceEditorProps { isConfidenceScoreReviewEnabled?: boolean; onSelectMetadataField?: (field: MetadataTemplateField | null) => void; selectedMetadataFieldId?: string | null; + trackEvent?: (eventName: string, data?: Record) => void; } const MetadataInstanceEditor: React.FC = ({ @@ -62,6 +63,7 @@ const MetadataInstanceEditor: React.FC = ({ isConfidenceScoreReviewEnabled = false, onSelectMetadataField, selectedMetadataFieldId, + trackEvent, }) => { const previewContext: PreviewContextType | null = useContext(PreviewContext); const customRef = previewContext?.previewBodyRef?.current; @@ -92,6 +94,7 @@ const MetadataInstanceEditor: React.FC = ({ onSelectMetadataField={onSelectMetadataField} selectedMetadataFieldId={selectedMetadataFieldId} customRef={customRef} + trackEvent={trackEvent} /> ); }; diff --git a/src/elements/content-sidebar/MetadataSidebar.js b/src/elements/content-sidebar/MetadataSidebar.js index 760da0e900..3d82401929 100644 --- a/src/elements/content-sidebar/MetadataSidebar.js +++ b/src/elements/content-sidebar/MetadataSidebar.js @@ -48,6 +48,7 @@ type ExternalProps = { registerOpenWarningModalCallback?: (handleWarningModalOpen: (isOpen: boolean) => void) => void, onWarningModalDiscard?: () => void, onWarningModalClose?: () => void, + trackEvent?: (eventName: string, data?: Record) => void, }; type PropsWithoutContext = { diff --git a/src/elements/content-sidebar/MetadataSidebarRedesign.tsx b/src/elements/content-sidebar/MetadataSidebarRedesign.tsx index c1a6b36ddd..7672d1a90a 100644 --- a/src/elements/content-sidebar/MetadataSidebarRedesign.tsx +++ b/src/elements/content-sidebar/MetadataSidebarRedesign.tsx @@ -89,6 +89,7 @@ export interface MetadataSidebarRedesignProps registerOpenWarningModalCallback?: (handleWarningModalOpen: (isOpen: boolean) => void) => void; onWarningModalDiscard?: () => void; onWarningModalClose?: () => void; + trackEvent?: (eventName: string, data?: Record) => void; } function MetadataSidebarRedesign({ @@ -108,6 +109,7 @@ function MetadataSidebarRedesign({ registerOpenWarningModalCallback, onWarningModalDiscard, onWarningModalClose, + trackEvent, }: MetadataSidebarRedesignProps) { const { formatMessage } = useIntl(); const isBoxAiSuggestionsEnabled: boolean = useFeatureEnabled('metadata.aiSuggestions.enabled'); @@ -368,6 +370,7 @@ function MetadataSidebarRedesign({ isConfidenceScoreReviewEnabled={isConfidenceScoreReviewEnabled} onSelectMetadataField={handleSelectMetadataField} selectedMetadataFieldId={selectedMetadataFieldId} + trackEvent={trackEvent} /> )} {showList && ( @@ -386,6 +389,7 @@ function MetadataSidebarRedesign({ templateInstances={templateInstancesList} taxonomyNodeFetcher={taxonomyNodeFetcher} isConfidenceScoreReviewEnabled={isConfidenceScoreReviewEnabled} + trackEvent={trackEvent} /> )} diff --git a/yarn.lock b/yarn.lock index ecea27cd81..2458279980 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1520,10 +1520,10 @@ resolved "https://registry.yarnpkg.com/@box/languages/-/languages-1.1.2.tgz#cd4266b3da62da18560d881e10b429653186be29" integrity sha512-d64TGosx+KRmrLZj4CIyLp42LUiEbgBJ8n8cviMQwTJmfU0g+UwZqLjmQZR1j+Q9D64yV4xHzY9K1t5nInWWeQ== -"@box/metadata-editor@^1.61.5": - version "1.61.5" - resolved "https://registry.yarnpkg.com/@box/metadata-editor/-/metadata-editor-1.61.5.tgz#91ed9ccd5e910b50c2ff54f77e4a9f2a98913817" - integrity sha512-gsZIQWXa0+reWKZG2FMiCT9bnE1xf6asv+NeuhiWi28KTHyu27LTTULDQbS//Q7dTODKTvB4KeZp6u7npCLjYg== +"@box/metadata-editor@^1.69.6": + version "1.69.6" + resolved "https://registry.yarnpkg.com/@box/metadata-editor/-/metadata-editor-1.69.6.tgz#56a0f185e4e5b64807b32e8c155812bead8b6598" + integrity sha512-pVQD0FyabgpIchYBpVbi44iMz+wzRVW5YeP0FslbfHMpCGJL9lABWWN0aBp68CXRXJbSZXr/4YQUQJ0YsmRmoA== "@box/metadata-filter@^1.80.23": version "1.80.23" From ed8c9837b6917e0c585004e05aecee4cb76f965f Mon Sep 17 00:00:00 2001 From: Oleh Rybak Date: Wed, 6 May 2026 13:28:58 +0200 Subject: [PATCH 2/5] fix(metadata): fix types --- src/elements/content-sidebar/MetadataSidebar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/elements/content-sidebar/MetadataSidebar.js b/src/elements/content-sidebar/MetadataSidebar.js index 3d82401929..905430fac7 100644 --- a/src/elements/content-sidebar/MetadataSidebar.js +++ b/src/elements/content-sidebar/MetadataSidebar.js @@ -48,7 +48,7 @@ type ExternalProps = { registerOpenWarningModalCallback?: (handleWarningModalOpen: (isOpen: boolean) => void) => void, onWarningModalDiscard?: () => void, onWarningModalClose?: () => void, - trackEvent?: (eventName: string, data?: Record) => void, + trackEvent?: (eventName: string, data?: { [string]: any }) => void, }; type PropsWithoutContext = { From 8282093d40dc2488f841e7f10095de2d3560c56d Mon Sep 17 00:00:00 2001 From: Oleh Rybak Date: Wed, 6 May 2026 15:30:09 +0200 Subject: [PATCH 3/5] test(metadata): fix storybook test --- .../tests/MetadataSidebarRedesign-visual.stories.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx b/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx index a5968e4e4d..c55b6bd2f1 100644 --- a/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx +++ b/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx @@ -717,7 +717,16 @@ export const AcceptAllDismissesReviewNotice: StoryObj { + acceptButtons = canvas.getAllByRole('button', { name: 'Accept extracted value' }); + expect(acceptButtons.length).toBeGreaterThanOrEqual(1); + }, + { timeout: 5000 }, + ); + await userEvent.click(acceptButtons[0]); await waitFor(() => { expect(canvas.getByText(/2 fields need review/i)).toBeVisible(); From ef507c316c1ab7e25c73836044061da57203fef1 Mon Sep 17 00:00:00 2001 From: Oleh Rybak Date: Thu, 7 May 2026 13:55:41 +0200 Subject: [PATCH 4/5] test: reduce waitFor timeout --- .../stories/tests/MetadataSidebarRedesign-visual.stories.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx b/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx index c55b6bd2f1..19041e9ebc 100644 --- a/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx +++ b/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx @@ -724,7 +724,7 @@ export const AcceptAllDismissesReviewNotice: StoryObj Date: Thu, 7 May 2026 13:57:11 +0200 Subject: [PATCH 5/5] test: reduce waitFor timeout --- .../stories/tests/MetadataSidebarRedesign-visual.stories.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx b/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx index 19041e9ebc..d03c0cf47f 100644 --- a/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx +++ b/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx @@ -724,7 +724,7 @@ export const AcceptAllDismissesReviewNotice: StoryObj