diff --git a/packages/synapse-react-client/src/components/EntityUpload/EntityUpload.tsx b/packages/synapse-react-client/src/components/EntityUpload/EntityUpload.tsx index 31f7bb6ae7c..91694100fd6 100644 --- a/packages/synapse-react-client/src/components/EntityUpload/EntityUpload.tsx +++ b/packages/synapse-react-client/src/components/EntityUpload/EntityUpload.tsx @@ -111,7 +111,7 @@ export const EntityUpload = React.forwardRef(function EntityUpload( ).length function uploadFileList(fileList: ArrayLike<File>) { - if (uploadDestination?.projectStorageLocationUsage.isOverLimit) { + if (uploadDestination?.projectStorageLocationUsage?.isOverLimit) { displayToast( 'Cannot upload files because the storage limit has been exceeded.', 'danger', @@ -137,7 +137,7 @@ export const EntityUpload = React.forwardRef(function EntityUpload( return ( <div> <EntityUploadPromptDialog activePrompts={activePrompts} /> - {uploadDestination && ( + {uploadDestination?.projectStorageLocationUsage && ( <ProjectStorageLimitAlert usage={uploadDestination.projectStorageLocationUsage} didUploadsExceedLimit={didUploadsExceedStorageLimit} @@ -156,7 +156,7 @@ export const EntityUpload = React.forwardRef(function EntityUpload( border: '1px dashed #D9D9D9', backgroundColor: 'grey.100', textAlign: 'center', - ...(uploadDestination?.projectStorageLocationUsage.isOverLimit + ...(uploadDestination?.projectStorageLocationUsage?.isOverLimit ? disabledUploadPaneSx : {}), }} diff --git a/packages/synapse-react-client/src/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.test.ts b/packages/synapse-react-client/src/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.test.ts index 6a426b00ab0..029551baac7 100644 --- a/packages/synapse-react-client/src/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.test.ts +++ b/packages/synapse-react-client/src/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.test.ts @@ -87,4 +87,13 @@ describe('willUploadsExceedStorageLimit', () => { ), ).toEqual(true) }) + + test('undefined usage', () => { + const usage = undefined + + const pendingUploadsInBytes = 0 + expect( + willUploadsExceedStorageLimit([], usage, pendingUploadsInBytes), + ).toEqual(false) + }) }) diff --git a/packages/synapse-react-client/src/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.ts b/packages/synapse-react-client/src/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.ts index 4badd5515fa..b3705ba2392 100644 --- a/packages/synapse-react-client/src/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.ts +++ b/packages/synapse-react-client/src/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.ts @@ -8,9 +8,12 @@ import { ProjectStorageLocationUsage } from '@sage-bionetworks/synapse-types' */ export function willUploadsExceedStorageLimit( files: ArrayLike<File>, - usage: ProjectStorageLocationUsage, + usage: ProjectStorageLocationUsage | undefined, pendingUploadsInBytes: number, ): boolean { + if (usage == null) { + return false + } if (usage.isOverLimit) { return true } diff --git a/packages/synapse-types/src/File/UploadDestination.ts b/packages/synapse-types/src/File/UploadDestination.ts index 6a80270f370..d58587a326c 100644 --- a/packages/synapse-types/src/File/UploadDestination.ts +++ b/packages/synapse-types/src/File/UploadDestination.ts @@ -17,7 +17,7 @@ export interface UploadDestination { uploadType: UploadType /* If set, the client should show this banner every time an upload is initiated */ banner?: string - projectStorageLocationUsage: ProjectStorageLocationUsage + projectStorageLocationUsage?: ProjectStorageLocationUsage } /**