From 635a306ff1b93828d5ce6d7072e1ed5f27a5bb28 Mon Sep 17 00:00:00 2001 From: Oleh Rybak Date: Thu, 11 Jun 2026 16:59:42 +0200 Subject: [PATCH 1/5] feat(content-uploader): pass version_number to modernized uploader items list --- src/api/uploads/PlainUpload.js | 6 +++--- src/api/uploads/__tests__/PlainUpload.test.js | 21 +++++++++++++++++++ .../mapToModernizedUploadItem.test.ts | 17 +++++++++++++++ .../utils/mapToModernizedUploadItem.ts | 1 + 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/src/api/uploads/PlainUpload.js b/src/api/uploads/PlainUpload.js index 3acb849a0a..cadb687366 100644 --- a/src/api/uploads/PlainUpload.js +++ b/src/api/uploads/PlainUpload.js @@ -73,10 +73,10 @@ class PlainUpload extends BaseUpload { if (this.fileId) { uploadUrl = uploadUrl.replace('content', `${this.fileId}/content`); } + } - if (this.fields) { - uploadUrl = updateQueryParameters(uploadUrl, { fields: this.fields.toString() }); - } + if (this.fields) { + uploadUrl = updateQueryParameters(uploadUrl, { fields: this.fields.toString() }); } const attributes = JSON.stringify({ diff --git a/src/api/uploads/__tests__/PlainUpload.test.js b/src/api/uploads/__tests__/PlainUpload.test.js index 451381b48d..12ea7d0ec1 100644 --- a/src/api/uploads/__tests__/PlainUpload.test.js +++ b/src/api/uploads/__tests__/PlainUpload.test.js @@ -174,6 +174,27 @@ describe('api/uploads/PlainUpload', () => { }); }); + test('should append fields query parameter to upload URL when fields are provided', () => { + upload.isDestroyed = jest.fn().mockReturnValueOnce(false); + upload.computeSHA1 = jest.fn().mockReturnValueOnce(Promise.resolve('somehash')); + upload.file = { + name: 'warlock', + }; + upload.folderId = '123'; + upload.fields = ['content_created_at', 'version_number']; + upload.xhr = { + uploadFile: jest.fn(), + }; + + return upload.preflightSuccessHandler({ data: {} }).then(() => { + expect(upload.xhr.uploadFile).toHaveBeenCalledWith( + expect.objectContaining({ + url: `${upload.uploadHost}/api/2.0/files/content?fields=content_created_at%2Cversion_number`, + }), + ); + }); + }); + test('should upload with no Content-MD5 hash if hashing fails', () => { upload.isDestroyed = jest.fn().mockReturnValueOnce(false); upload.computeSHA1 = jest.fn().mockReturnValueOnce(Promise.resolve('')); diff --git a/src/elements/content-uploader/utils/__tests__/mapToModernizedUploadItem.test.ts b/src/elements/content-uploader/utils/__tests__/mapToModernizedUploadItem.test.ts index cc5ac9aef4..0f6b08c981 100644 --- a/src/elements/content-uploader/utils/__tests__/mapToModernizedUploadItem.test.ts +++ b/src/elements/content-uploader/utils/__tests__/mapToModernizedUploadItem.test.ts @@ -30,6 +30,7 @@ describe('mapToModernizedUploadItem()', () => { status: 'uploading', isFolder: undefined, errorMessage: undefined, + versionNumber: undefined, }); }); @@ -63,6 +64,22 @@ describe('mapToModernizedUploadItem()', () => { expect(result.extension).toBe(''); expect(result.progress).toBe(0); }); + + test('forwards versionNumber from item.boxFile.version_number', () => { + const result = mapToModernizedUploadItem( + buildLegacyItem({ + status: STATUS_COMPLETE, + boxFile: { version_number: '2' }, + }), + '0', + ); + expect(result.versionNumber).toBe('2'); + }); + + test('leaves versionNumber undefined when boxFile is missing', () => { + const result = mapToModernizedUploadItem(buildLegacyItem({ status: STATUS_IN_PROGRESS }), '0'); + expect(result.versionNumber).toBeUndefined(); + }); }); describe('mapToModernizedUploadItems()', () => { diff --git a/src/elements/content-uploader/utils/mapToModernizedUploadItem.ts b/src/elements/content-uploader/utils/mapToModernizedUploadItem.ts index 95d4d3f6bc..a2e8a28111 100644 --- a/src/elements/content-uploader/utils/mapToModernizedUploadItem.ts +++ b/src/elements/content-uploader/utils/mapToModernizedUploadItem.ts @@ -44,6 +44,7 @@ export function mapToModernizedUploadItem(item: LegacyUploadItem | FolderUploadI status: STATUS_MAP[item.status] ?? 'pending', isFolder: item.isFolder, errorMessage, + versionNumber: item.boxFile?.version_number, }; } From 8166137e525dfbd0860b233fbf5086134e467777 Mon Sep 17 00:00:00 2001 From: Oleh Rybak Date: Fri, 12 Jun 2026 10:37:38 +0200 Subject: [PATCH 2/5] feat: bump uploads-manager package --- package.json | 14 ++++++++++---- yarn.lock | 8 ++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index d407e24efc..b2176fb3eb 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,11 @@ "last 2 Edge versions", "last 2 iOS versions" ], - "development": ["last 1 Chrome versions", "last 1 Firefox versions", "last 1 Safari versions"] + "development": [ + "last 1 Chrome versions", + "last 1 Firefox versions", + "last 1 Safari versions" + ] }, "husky": { "hooks": { @@ -147,7 +151,7 @@ "@box/types": "^2.1.8", "@box/unified-share-modal": "^2.15.16", "@box/user-selector": "^1.78.5", - "@box/uploads-manager": "^1.15.0", + "@box/uploads-manager": "^1.17.2", "@cfaester/enzyme-adapter-react-18": "^0.8.0", "@chromatic-com/storybook": "^4.0.1", "@commitlint/cli": "^19.8.0", @@ -314,7 +318,7 @@ "@box/types": "^2.1.8", "@box/unified-share-modal": "^2.15.16", "@box/user-selector": "^1.78.5", - "@box/uploads-manager": "^1.15.0", + "@box/uploads-manager": "^1.17.2", "@hapi/address": "^2.1.4", "@tanstack/react-virtual": "^3.13.12", "axios": "^0.32.0", @@ -368,6 +372,8 @@ "tar": "^7.5.11" }, "msw": { - "workerDirectory": [".storybook/public"] + "workerDirectory": [ + ".storybook/public" + ] } } diff --git a/yarn.lock b/yarn.lock index 0c6bebe12f..56df49dfc7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1243,10 +1243,10 @@ resolved "https://registry.yarnpkg.com/@box/unified-share-modal/-/unified-share-modal-2.15.16.tgz#49deb182bf1ac7f1ffe4bae713ab12ff2822533e" integrity sha512-Y1bE+JWDQm058lT+AcsfwJqK3WvGAsZj6ro9PLvejJZ1LxzexvOzyQFkM0sL4Kmj/93k2VEKoAJ/onBgheAJoQ== -"@box/uploads-manager@^1.15.0": - version "1.15.0" - resolved "https://registry.yarnpkg.com/@box/uploads-manager/-/uploads-manager-1.15.0.tgz#59e68734bb2dd0c84b356e3270f7d41e964dcbc9" - integrity sha512-pvz8wsZbhfoDK6tPfYl3Yo+48++C9Rcx6NxNVQxeq0dTGCjQeP4z0nLPvEaAGOUDI6osyF31pKSTDhwBSQsM7g== +"@box/uploads-manager@^1.17.2": + version "1.17.2" + resolved "https://registry.yarnpkg.com/@box/uploads-manager/-/uploads-manager-1.17.2.tgz#e7640ca60c0b1eac6fda1ab6dc5d8269a124eb69" + integrity sha512-pVXoPDFmAYx/ErD8+kP3yi4/EOG331tWl4yiO7cEDE1ia5X6mmKGp3va5twJfiqmTmnxBJJZAFEBa4QYb5yV5Q== "@box/user-selector@^1.78.5": version "1.78.5" From 8aea5786b73b27f9ae25bbedacf8034cf9f225a6 Mon Sep 17 00:00:00 2001 From: Oleh Rybak Date: Mon, 15 Jun 2026 12:07:55 +0200 Subject: [PATCH 3/5] feat: bump @box/item-icon version --- package.json | 12 +++--------- yarn.lock | 8 ++++---- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index b2176fb3eb..0ffe5c06a9 100644 --- a/package.json +++ b/package.json @@ -98,11 +98,7 @@ "last 2 Edge versions", "last 2 iOS versions" ], - "development": [ - "last 1 Chrome versions", - "last 1 Firefox versions", - "last 1 Safari versions" - ] + "development": ["last 1 Chrome versions", "last 1 Firefox versions", "last 1 Safari versions"] }, "husky": { "hooks": { @@ -140,7 +136,7 @@ "@box/content-field": "^1.40.23", "@box/copy-input": "^1.42.16", "@box/frontend": "^11.0.1", - "@box/item-icon": "^2.32.14", + "@box/item-icon": "^2.37.5", "@box/languages": "^1.0.0", "@box/metadata-editor": "^1.69.6", "@box/metadata-filter": "^1.80.23", @@ -372,8 +368,6 @@ "tar": "^7.5.11" }, "msw": { - "workerDirectory": [ - ".storybook/public" - ] + "workerDirectory": [".storybook/public"] } } diff --git a/yarn.lock b/yarn.lock index 56df49dfc7..50307a9fca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1169,10 +1169,10 @@ rimraf "^3.0.0" semver "^7.4.0" -"@box/item-icon@^2.32.14": - version "2.32.14" - resolved "https://registry.yarnpkg.com/@box/item-icon/-/item-icon-2.32.14.tgz#e9aa6b5297e34a310814e7f12adfcd14f2528adf" - integrity sha512-+VYA+gqiWWmdd4cEHyE6TMmuBUSGQLROoz0b/+TkG7dwMMXMfHylnVuI0Fqy5E955TvNTVxOLN1t+ejtlpmHhw== +"@box/item-icon@^2.37.1": + version "2.37.5" + resolved "https://registry.yarnpkg.com/@box/item-icon/-/item-icon-2.37.5.tgz#887b58a66dee13f494d38709d7d6c0f7bdcc995f" + integrity sha512-GNcFK2Ehq0RFHxq8lbZD4J9UZZyxf/Y9l4PdoLQsfQWi/phWw27+v5dQBdfTBNHZGmfs4hNe+M2mUxqnOlG+Ng== "@box/languages@^1.0.0": version "1.1.2" From e27735e9e6a88a5ed04ba859215030a9918d1320 Mon Sep 17 00:00:00 2001 From: Oleh Rybak Date: Mon, 15 Jun 2026 12:10:18 +0200 Subject: [PATCH 4/5] feat: bump @box/item-icon version --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 50307a9fca..804a23b1a9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1169,7 +1169,7 @@ rimraf "^3.0.0" semver "^7.4.0" -"@box/item-icon@^2.37.1": +"@box/item-icon@^2.37.5": version "2.37.5" resolved "https://registry.yarnpkg.com/@box/item-icon/-/item-icon-2.37.5.tgz#887b58a66dee13f494d38709d7d6c0f7bdcc995f" integrity sha512-GNcFK2Ehq0RFHxq8lbZD4J9UZZyxf/Y9l4PdoLQsfQWi/phWw27+v5dQBdfTBNHZGmfs4hNe+M2mUxqnOlG+Ng== From a5cf1e28b783cd6ed1fbd5c160172312b414e41f Mon Sep 17 00:00:00 2001 From: Oleh Rybak Date: Mon, 15 Jun 2026 12:14:33 +0200 Subject: [PATCH 5/5] fix: bump @box/item-icon version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0ffe5c06a9..d76ae92e79 100644 --- a/package.json +++ b/package.json @@ -304,7 +304,7 @@ "@box/combobox-with-api": "^1.42.22", "@box/content-field": "^1.40.23", "@box/copy-input": "^1.42.16", - "@box/item-icon": "^2.32.14", + "@box/item-icon": "^2.37.5", "@box/metadata-editor": "^1.69.6", "@box/metadata-filter": "^1.80.23", "@box/metadata-view": "^1.53.26",