Skip to content

Commit 65f764d

Browse files
feat(metadata-editor): Parse autofill values correctly for taxonomy fields (#4398)
* feat(metadata-editor): Parse autofill values correctly for taxonomy fields * feat(metadata-editor): update packages * feat(metadata-editor): update lockfile * feat(metadata-editor): trigger build * feat(metadata-editor): update dep versions in devDependencies and peerDependencies * feat(metadata-editor): trigger build * test(metadata-editor): update SidebarFileProperties snapshot for blueprint-web update * feat(metadata-editor): trigger build * feat(metadata-editor): trigger rebuild --------- Co-authored-by: Anna Stepchenko <[email protected]>
1 parent 8fc2b86 commit 65f764d

File tree

5 files changed

+88
-31
lines changed

5 files changed

+88
-31
lines changed

package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -124,18 +124,18 @@
124124
"@babel/preset-typescript": "^7.24.7",
125125
"@babel/template": "^7.24.7",
126126
"@babel/types": "^7.24.7",
127-
"@box/blueprint-web": "^12.98.0",
127+
"@box/blueprint-web": "^12.104.1",
128128
"@box/blueprint-web-assets": "4.88.2",
129129
"@box/box-ai-agent-selector": "^0.53.0",
130130
"@box/box-ai-content-answers": "^0.139.0",
131131
"@box/box-item-type-selector": "^0.73.1",
132132
"@box/cldr-data": "^34.2.0",
133-
"@box/combobox-with-api": "^1.3.11",
133+
"@box/combobox-with-api": "^1.18.0",
134134
"@box/copy-input": "^1.5.3",
135135
"@box/frontend": "^11.0.1",
136136
"@box/item-icon": "^0.27.1",
137137
"@box/languages": "^1.0.0",
138-
"@box/metadata-editor": "^1.5.3",
138+
"@box/metadata-editor": "^1.18.0",
139139
"@box/metadata-filter": "^1.41.3",
140140
"@box/metadata-view": "^1.10.0",
141141
"@box/react-virtualized": "^9.22.3-rc-box.10",
@@ -296,16 +296,16 @@
296296
"webpack-dev-server": "^5.2.1"
297297
},
298298
"peerDependencies": {
299-
"@box/blueprint-web": "^12.98.0",
299+
"@box/blueprint-web": "^12.104.1",
300300
"@box/blueprint-web-assets": "4.88.2",
301301
"@box/box-ai-agent-selector": "^0.53.0",
302302
"@box/box-ai-content-answers": "^0.139.0",
303303
"@box/box-item-type-selector": "^0.73.1",
304304
"@box/cldr-data": ">=34.2.0",
305-
"@box/combobox-with-api": "^1.3.11",
305+
"@box/combobox-with-api": "^1.18.0",
306306
"@box/copy-input": "^1.5.3",
307307
"@box/item-icon": "^0.27.1",
308-
"@box/metadata-editor": "^1.5.3",
308+
"@box/metadata-editor": "^1.18.0",
309309
"@box/metadata-filter": "^1.41.3",
310310
"@box/metadata-view": "^1.10.0",
311311
"@box/react-virtualized": "^9.22.3-rc-box.10",

src/elements/content-sidebar/__tests__/__snapshots__/SidebarFileProperties.test.js.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ exports[`elements/content-sidebar/SidebarFileProperties render() should render r
130130
<dd>
131131
<Text>
132132
<p
133-
className="bp_text_module_textReset--d93f2 bp_text_module_breakWord--d93f2 bp_text_module_bodyDefault--d93f2 bp_text_module_textOnLightDefault--d93f2"
133+
className="bp_text_module_textReset--3521c bp_text_module_breakWord--3521c bp_text_module_bodyDefault--3521c bp_text_module_textOnLightDefault--3521c"
134134
data-modern="false"
135135
>
136136
1 B

src/elements/content-sidebar/__tests__/useSidebarMetadataFetcher.test.tsx

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,54 @@ describe('useSidebarMetadataFetcher', () => {
371371
]);
372372
});
373373

374+
test('should map taxonomy field suggestions with value and displayValue', async () => {
375+
const taxonomyTemplate = {
376+
canEdit: true,
377+
id: 'metadata_template_taxonomy',
378+
fields: [
379+
{
380+
key: 'taxonomyField',
381+
type: 'taxonomy' as MetadataTemplateFieldType,
382+
hidden: false,
383+
},
384+
],
385+
scope: 'global',
386+
templateKey: 'taxonomyTemplateKey',
387+
};
388+
389+
const mockTaxonomySuggestions = {
390+
taxonomyField: [
391+
{ id: 'taxonomy-id-1', displayName: 'Taxonomy Item 1' },
392+
{ id: 'taxonomy-id-2', displayName: 'Taxonomy Item 2' },
393+
],
394+
};
395+
396+
mockAPI.getMetadata.mockImplementation((file, successCallback) => {
397+
successCallback({
398+
editors: [],
399+
templates: [taxonomyTemplate],
400+
templateInstances: [],
401+
});
402+
});
403+
mockAPI.extractStructured.mockResolvedValue(mockTaxonomySuggestions);
404+
405+
const { result } = setupHook();
406+
407+
await waitFor(() => expect(result.current.templates).toEqual([taxonomyTemplate]));
408+
409+
const suggestions = await result.current.extractSuggestions('taxonomyTemplateKey', 'global');
410+
411+
expect(suggestions).toEqual([
412+
{
413+
...taxonomyTemplate.fields[0],
414+
aiSuggestion: [
415+
{ value: 'taxonomy-id-1', displayValue: 'Taxonomy Item 1' },
416+
{ value: 'taxonomy-id-2', displayValue: 'Taxonomy Item 2' },
417+
],
418+
},
419+
]);
420+
});
421+
374422
test('should handle user correctable error during suggestions extraction', async () => {
375423
mockAPI.extractStructured.mockRejectedValue({ response: mockRateLimitError });
376424

src/elements/content-sidebar/hooks/useSidebarMetadataFetcher.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,10 +264,19 @@ function useSidebarMetadataFetcher(
264264

265265
return fields.map(field => {
266266
const value = answer[field.key];
267-
// TODO: @box/metadadata-editor does not support AI suggestions, enable once supported
268-
if (!value || field.type === 'taxonomy') {
267+
268+
if (!value) {
269269
return field;
270270
}
271+
if (field.type === 'taxonomy') {
272+
return {
273+
...field,
274+
aiSuggestion: value.map(item => ({
275+
value: item.id,
276+
displayValue: item.displayName,
277+
})),
278+
};
279+
}
271280
return {
272281
...field,
273282
aiSuggestion: value,

yarn.lock

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1424,19 +1424,19 @@
14241424
resolved "https://registry.yarnpkg.com/@box/blueprint-web-assets/-/blueprint-web-assets-4.88.2.tgz#cb98f14dcd5a072d7c97be31030485cf9219478e"
14251425
integrity sha512-TAtiYWvudxj3i5GAa4NsiHzlF9WcIARBbp1dCxgwsFP652NEamo/3SH2wyhcc/5u1bJJLftxe5xsTv6a7dpj0w==
14261426

1427-
"@box/blueprint-web-assets@^4.80.0":
1428-
version "4.80.4"
1429-
resolved "https://registry.yarnpkg.com/@box/blueprint-web-assets/-/blueprint-web-assets-4.80.4.tgz#3db74e9c1006d2eb86ddc7e4caa23a4f0376cf92"
1430-
integrity sha512-zXIUfIC+RgzpQkA6KtLi0M5gtbXjNO3orWPNsVaJgEbYjrKahC4AejL2j4/XNaxt7AO0Xvz6vRr1Zjn1Byu4YA==
1427+
"@box/blueprint-web-assets@^4.89.0":
1428+
version "4.89.0"
1429+
resolved "https://registry.yarnpkg.com/@box/blueprint-web-assets/-/blueprint-web-assets-4.89.0.tgz#fd19ea1e826b6af9db78fbddb89e052717e40f24"
1430+
integrity sha512-5pwvqUUJutlpVFjf8rZld0qegNwICyG1g63OEnhszVq+KqkMQPZJOWJ2rfK5Pr8SduH4ei5LQ3j6XkG8VJuFig==
14311431

1432-
"@box/blueprint-web@^12.98.0":
1433-
version "12.98.0"
1434-
resolved "https://registry.yarnpkg.com/@box/blueprint-web/-/blueprint-web-12.98.0.tgz#05f7cf9dbfb3e7da0dc78f7e86c307f4656796b7"
1435-
integrity sha512-8KViIyToOdFzHjqVi3jswt94VVMfKXecxY5mPZCY6QdkXgpeATkJVMfDrTNT2sEFI+KWc6BPgv5LxBFy5o227A==
1432+
"@box/blueprint-web@^12.104.1":
1433+
version "12.108.1"
1434+
resolved "https://registry.yarnpkg.com/@box/blueprint-web/-/blueprint-web-12.108.1.tgz#7760d6a3c0635a3a28e8c15881c1b799cbda5fff"
1435+
integrity sha512-v3jBIc7zP2oz7qG5cuALW67D0V+/4PdB8tRoeXs7OcFgwjTIRpx9pNg6pagmTTD/VSm6sCawbUl6oRQfowOQOQ==
14361436
dependencies:
14371437
"@ariakit/react" "0.4.15"
14381438
"@ariakit/react-core" "0.4.15"
1439-
"@box/blueprint-web-assets" "^4.80.0"
1439+
"@box/blueprint-web-assets" "^4.89.0"
14401440
"@internationalized/date" "^3.7.0"
14411441
"@radix-ui/react-accordion" "1.1.2"
14421442
"@radix-ui/react-checkbox" "1.0.4"
@@ -1485,12 +1485,12 @@
14851485
resolved "https://registry.yarnpkg.com/@box/cldr-data/-/cldr-data-34.8.0.tgz#36e6ddcea8e20653326aba2e0d13e07f34b7704f"
14861486
integrity sha512-jsTnhhpFy/eMossMr3cP9+1VFqOxOzO1GX/csw0LzasPl0Dg2Jhn8ypeNTBnFwlOB2Dp6XoxdvQHkBG4eVQe/Q==
14871487

1488-
"@box/combobox-with-api@^1.3.11":
1489-
version "1.3.13"
1490-
resolved "https://registry.yarnpkg.com/@box/combobox-with-api/-/combobox-with-api-1.3.13.tgz#bfe008b1fac3ac59a2459a98b1e7d9f8783799b0"
1491-
integrity sha512-PN+unnjkbiJf55JTKhz2lYIxCI28IX7b+ds+YUsStcrER9IrQuX7sbdA7UwJ+yW/uJBXF5zpyd4tnDIAloaSIQ==
1488+
"@box/combobox-with-api@^1.18.0":
1489+
version "1.20.1"
1490+
resolved "https://registry.yarnpkg.com/@box/combobox-with-api/-/combobox-with-api-1.20.1.tgz#49fc8d7dfc3824b5ac77230de0a98f2080525bab"
1491+
integrity sha512-YkEN+1JbMkbpIkII8jKhKXpeIzyu48viOd5U9vbfUFYPMMd8iRQ9DZmPeb2cserywLAXajNX66PK5j9j3Gq+tw==
14921492
dependencies:
1493-
"@box/tree" "^1.2.6"
1493+
"@box/tree" "^1.18.1"
14941494
react-accessible-treeview "2.9.0"
14951495

14961496
"@box/copy-input@^1.5.3":
@@ -1517,10 +1517,10 @@
15171517
resolved "https://registry.yarnpkg.com/@box/languages/-/languages-1.1.2.tgz#cd4266b3da62da18560d881e10b429653186be29"
15181518
integrity sha512-d64TGosx+KRmrLZj4CIyLp42LUiEbgBJ8n8cviMQwTJmfU0g+UwZqLjmQZR1j+Q9D64yV4xHzY9K1t5nInWWeQ==
15191519

1520-
"@box/metadata-editor@^1.5.3":
1521-
version "1.5.3"
1522-
resolved "https://registry.yarnpkg.com/@box/metadata-editor/-/metadata-editor-1.5.3.tgz#75eba5fb48697ce4f9e1428e8c7187fcac9c834b"
1523-
integrity sha512-49CaS2R8xnSlFKWjVscmx+YZJRV8NjYzzTKRMmw51f0Rs3I0VxRdxo0O+FThC6AtqRPE+3gvpLRMhXJlbTVL/w==
1520+
"@box/metadata-editor@^1.18.0":
1521+
version "1.19.0"
1522+
resolved "https://registry.yarnpkg.com/@box/metadata-editor/-/metadata-editor-1.19.0.tgz#832b63be022dc3ef0482776378fbfdaaaa7e3a87"
1523+
integrity sha512-JtI+2PbRYxX8YW2PN+E9sMeJaAX25v24PTk5upbNN/vohTjpEuy8TWeZMziLT1UBwPtJ83NXqLY3F+6P2EC4aw==
15241524

15251525
"@box/metadata-filter@^1.41.3":
15261526
version "1.41.3"
@@ -1544,10 +1544,10 @@
15441544
prop-types "^15.7.2"
15451545
react-lifecycles-compat "^3.0.4"
15461546

1547-
"@box/tree@^1.2.6":
1548-
version "1.2.6"
1549-
resolved "https://registry.yarnpkg.com/@box/tree/-/tree-1.2.6.tgz#998611a8e23f94959a20e9aa37ee89ab6d7d556b"
1550-
integrity sha512-BWJhvfnwbKTqEKS3mXWY8jfSI5zteSNEVfA06vA7+JPpiGrRWMIvolRiSQ4aeDAPXLoHqulzAm9PHmkSEnNsVw==
1547+
"@box/tree@^1.18.1":
1548+
version "1.18.1"
1549+
resolved "https://registry.yarnpkg.com/@box/tree/-/tree-1.18.1.tgz#206602830e985dceb924e048391695344c1e0f07"
1550+
integrity sha512-FFGK+T0SdxUSKFVRiCvW76XfZlD7fx18jYo3d8qyC/Dg99QFqihDtpye9EaV+stHCwMBGgAhiHZMVTYMu4vEQg==
15511551

15521552
"@box/types@^0.2.1":
15531553
version "0.2.1"

0 commit comments

Comments
 (0)