fix dragging folder into ancestor

pull/4101/head
filip mertens 1 year ago
parent fba58568ae
commit 17d2347183
  1. 15
      apps/remix-ide/src/app/files/fileManager.ts

@ -938,9 +938,16 @@ class FileManager extends Plugin {
await this._handleIsDir(src, `Cannot move ${src}. Path is not directory.`) await this._handleIsDir(src, `Cannot move ${src}. Path is not directory.`)
await this._handleIsDir(dest, `Cannot move content into ${dest}. Path is not directory.`) await this._handleIsDir(dest, `Cannot move content into ${dest}. Path is not directory.`)
const dirName = helper.extractNameFromKey(src) const dirName = helper.extractNameFromKey(src)
const provider = this.fileProviderOf(src)
if (await this.exists(dest + '/' + dirName) || src === dest) { if (await this.exists(dest + '/' + dirName) || src === dest) {
return false return false
} }
if (provider.isSubDirectory(src, dest)) {
this.call('notification', 'toast', recursivePasteToastMsg())
return false
}
return true return true
} catch (e) { } catch (e) {
console.log(e) console.log(e)
@ -998,7 +1005,13 @@ class FileManager extends Plugin {
if (await this.exists(dest + '/' + dirName) || src === dest) { if (await this.exists(dest + '/' + dirName) || src === dest) {
throw createError({ code: 'EEXIST', message: `Cannot move ${src}. Folder already exists at destination ${dest}` }) throw createError({ code: 'EEXIST', message: `Cannot move ${src}. Folder already exists at destination ${dest}` })
} }
await this.copyDir(src, dest, dirName) const provider = this.fileProviderOf(src)
if (provider.isSubDirectory(src, dest)) {
this.call('notification', 'toast', recursivePasteToastMsg())
return false
}
await this.inDepthCopy(src, dest, dirName)
await this.remove(src) await this.remove(src)
} catch (e) { } catch (e) {

Loading…
Cancel
Save