diff --git a/apps/files/src/services/DropService.ts b/apps/files/src/services/DropService.ts index 1013baeda6c..90ef4dcc656 100644 --- a/apps/files/src/services/DropService.ts +++ b/apps/files/src/services/DropService.ts @@ -89,15 +89,24 @@ export const dataTransferToFileTree = async (items: DataTransferItem[]): Promise return fileTree } -export const onDropExternalFiles = async (root: RootDirectory, destination: Folder, contents: Node[]): Promise => { +/** + * Handle dropping external files + * + * @param root - The root directory which should be uploaded + * @param destination - The destination folder + * @param contents - The contents of the destination folder + */ +export async function onDropExternalFiles(root: RootDirectory, destination: Folder, contents: Node[]): Promise { const uploader = getUploader() // Check for conflicts on root elements if (await hasConflict(root.contents, contents)) { root.contents = await resolveConflict(root.contents, destination, contents) - } - - if (root.contents.length === 0) { + if (root.contents.length === 0) { + // user cancelled the upload + return [] + } + } else if (root.contents.length === 0) { logger.info('No files to upload', { root }) showInfo(t('files', 'No files to upload')) return [] diff --git a/apps/files/src/services/DropServiceUtils.ts b/apps/files/src/services/DropServiceUtils.ts index bf6d93dae06..4eab3af9a1d 100644 --- a/apps/files/src/services/DropServiceUtils.ts +++ b/apps/files/src/services/DropServiceUtils.ts @@ -4,10 +4,10 @@ */ import type { FileStat, ResponseDataDetailed } from 'webdav' +import { showWarning, showInfo } from '@nextcloud/dialogs' import { emit } from '@nextcloud/event-bus' import { Folder, Node, davGetClient, davGetDefaultPropfind, davResultToNode } from '@nextcloud/files' import { openConflictPicker } from '@nextcloud/upload' -import { showError, showInfo } from '@nextcloud/dialogs' import { translate as t } from '@nextcloud/l10n' import logger from '../logger.ts' @@ -168,10 +168,9 @@ export const resolveConflict = async (files: // Update the list of files to upload return [...uploads, ...selected, ...renamed] as (typeof files) } catch (error) { - console.error(error) // User cancelled - showError(t('files', 'Upload cancelled')) - logger.error('User cancelled the upload') + logger.warn('User cancelled the upload', { error }) + showWarning(t('files', 'Upload cancelled')) } return []