diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index c704efb92b..6b83387841 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "6.56.3", + "version": "6.56.4-fb-filePathIssues.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "6.56.3", + "version": "6.56.4-fb-filePathIssues.1", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 363825c439..26b63693b8 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "6.56.3", + "version": "6.56.4-fb-filePathIssues.1", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index ad941f5290..8cc4ad961d 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -1,6 +1,11 @@ # @labkey/components Components, models, actions, and utility functions for LabKey applications and pages +### version 6.X +*Released*: X July 2025 +- File handling - File path related issue bundle + - Invalid file (that exist but isn't accessible) should show red triangle icon + ### version 6.56.3 *Released*: 24 July 2025 - Address Issue 53366 by not putting `undefined` into `List` diff --git a/packages/components/src/internal/renderers/FileColumnRenderer.test.tsx b/packages/components/src/internal/renderers/FileColumnRenderer.test.tsx index dd69f38b11..14af80ecfa 100644 --- a/packages/components/src/internal/renderers/FileColumnRenderer.test.tsx +++ b/packages/components/src/internal/renderers/FileColumnRenderer.test.tsx @@ -95,6 +95,13 @@ describe('getAttachmentCardProp', () => { iconFontCls: 'fa fa-file-image-o', unavailable: false, }); + const dataUnavailable = { url: 'testurl', value: 'test.png (unavailable)' }; + validate(getAttachmentCardProp(dataUnavailable), true, 'attachment', false, 'testurl', { + name: 'test.png', + title: 'test.png', + iconFontCls: 'fa fa-exclamation-triangle', + unavailable: true, + }); }); test('allowRemove', () => { diff --git a/packages/components/src/internal/renderers/FileColumnRenderer.tsx b/packages/components/src/internal/renderers/FileColumnRenderer.tsx index f6fc9e8e9b..8cb79aca74 100644 --- a/packages/components/src/internal/renderers/FileColumnRenderer.tsx +++ b/packages/components/src/internal/renderers/FileColumnRenderer.tsx @@ -57,11 +57,11 @@ export const getAttachmentCardProp = ( if (Iterable.isIterable(data)) { url = data.get('url'); value = data.get('value'); - display = getFileDisplayValue(data.get('displayValue')); + display = getFileDisplayValue(data.get('displayValue') ?? value); } else { url = caseInsensitive(data, 'url'); value = caseInsensitive(data, 'value'); - display = getFileDisplayValue(caseInsensitive(data, 'displayValue')); + display = getFileDisplayValue(caseInsensitive(data, 'displayValue') ?? value); } const titleStyle = isConditionalFormattingEnabled() ? getDataStyling(data) : undefined; const filename = display.filename;