diff --git a/apps/remix-ide/src/app/files/fileManager.ts b/apps/remix-ide/src/app/files/fileManager.ts index 00ecb3b4e0..ad5a1075d4 100644 --- a/apps/remix-ide/src/app/files/fileManager.ts +++ b/apps/remix-ide/src/app/files/fileManager.ts @@ -226,6 +226,13 @@ class FileManager extends Plugin { * @returns {void} */ async writeMultipleFiles(filePaths, fileData, folderPath) { + if (this.currentRequest) { + const canCall = await this.askUserPermission(`writeFile`, `will write multiple files to ${folderPath}...`) + const required = this.appManager.isRequired(this.currentRequest.from) + if (canCall && !required) { + this.call('notification', 'toast', fileChangedToastMsg(this.currentRequest.from, folderPath)) + } + } try { let alert = true for (let i = 0; i < filePaths.length; i++) { @@ -234,11 +241,8 @@ class FileManager extends Plugin { let path = this.normalize(installPath) path = this.limitPluginScope(path) - if (await this.exists(path)) { - await this._handleIsFile(path, `Cannot write file ${path}`) - await this.setMultipleFileContent(path, fileData[i], folderPath, alert) - } else { - await this.setMultipleFileContent(path, fileData[i], folderPath, alert) + if (!await this.exists(path)) { + await this._setFileInternal(path, fileData[i]) this.emit('fileAdded', path) } alert = false @@ -603,18 +607,6 @@ class FileManager extends Plugin { return await this._setFileInternal(path, content) } - async setMultipleFileContent(path, content, folderPath, alert) { - if (this.currentRequest) { - const canCall = await this.askUserPermission(`writeFile`, `modifying ${folderPath} ...`) - const required = this.appManager.isRequired(this.currentRequest.from) - if (canCall && !required && alert) { - // inform the user about modification after permission is granted and even if permission was saved before - this.call('notification', 'toast', fileChangedToastMsg(this.currentRequest.from, folderPath)) - } - } - return await this._setFileInternal(path, content) - } - _setFileInternal(path, content) { const provider = this.fileProviderOf(path) if (!provider) throw createError({ code: 'ENOENT', message: `${path} not available` })