diff --git a/packages/@uppy/core/src/Uppy.ts b/packages/@uppy/core/src/Uppy.ts index c9b6c8d7ba..654a7ee6ab 100644 --- a/packages/@uppy/core/src/Uppy.ts +++ b/packages/@uppy/core/src/Uppy.ts @@ -915,7 +915,7 @@ export class Uppy { const fileType = getFileType(file) const fileName = getFileName(fileType, file) const fileExtension = getFileNameAndExtension(fileName).extension - const id = getSafeFileId(file) + const id = getSafeFileId(file, this.getID()) const meta = file.meta || {} meta.name = fileName diff --git a/packages/@uppy/provider-views/src/ProviderView/ProviderView.tsx b/packages/@uppy/provider-views/src/ProviderView/ProviderView.tsx index efb2a931d4..f89ac115b1 100644 --- a/packages/@uppy/provider-views/src/ProviderView/ProviderView.tsx +++ b/packages/@uppy/provider-views/src/ProviderView/ProviderView.tsx @@ -465,7 +465,7 @@ export default class ProviderView extends View< for (const newFile of files) { const tagFile = this.getTagFile(newFile) - const id = getSafeFileId(tagFile) + const id = getSafeFileId(tagFile, this.plugin.uppy.getID()) // If the same folder is added again, we don't want to send // X amount of duplicate file notifications, we want to say // the folder was already added. This checks if all files are duplicate, diff --git a/packages/@uppy/utils/src/generateFileID.ts b/packages/@uppy/utils/src/generateFileID.ts index 1694e43cc0..41107c3777 100644 --- a/packages/@uppy/utils/src/generateFileID.ts +++ b/packages/@uppy/utils/src/generateFileID.ts @@ -21,11 +21,12 @@ function encodeFilename(name: string): string { */ export default function generateFileID( file: MinimalRequiredUppyFile, + instanceId: string, ): string { // It's tempting to do `[items].filter(Boolean).join('-')` here, but that // is slower! simple string concatenation is fast - let id = 'uppy' + let id = instanceId || 'uppy' if (typeof file.name === 'string') { id += `-${encodeFilename(file.name.toLowerCase())}` } @@ -63,13 +64,19 @@ function hasFileStableId(file: MinimalRequiredUppyFile): boolean { return stableIdProviders.has(file.remote.provider as any) } -export function getSafeFileId(file: MinimalRequiredUppyFile): string { +export function getSafeFileId( + file: MinimalRequiredUppyFile, + instanceId: string, +): string { if (hasFileStableId(file)) return file.id! const fileType = getFileType(file) - return generateFileID({ - ...file, - type: fileType, - }) + return generateFileID( + { + ...file, + type: fileType, + }, + instanceId, + ) }