Skip to content

Commit 76760f5

Browse files
fn-faisalfaisal154
andauthored
upload overwrite popup issue (#428)
Co-authored-by: Faisal Nadeem <[email protected]>
1 parent 63d63be commit 76760f5

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

src/components/B4ACodeTree/B4ACodeTree.react.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -80,15 +80,17 @@ export default class B4ACodeTree extends React.Component {
8080
}
8181

8282
// load file and add on tree
83-
loadFile() {
83+
async loadFile() {
8484
let file = this.state.newFile;
8585
if (file) {
86-
let currentTree = '#'
87-
B4ATreeActions.addFilesOnTree(file, currentTree, this.state.selectedFolder)
88-
this.setState({ newFile: '', filesOnTree: file });
89-
this.handleTreeChanges()
90-
const updatedFiles = this.syncNewFileContent(this.state.files, file);
91-
this.props.setCurrentCode(updatedFiles);
86+
let currentTree = '#';
87+
const overwrite = await B4ATreeActions.addFilesOnTree(file, currentTree, this.state.selectedFolder);
88+
if ( overwrite === true ) {
89+
this.setState({ newFile: '', filesOnTree: file });
90+
this.handleTreeChanges()
91+
const updatedFiles = this.syncNewFileContent(this.state.files, file);
92+
this.props.setCurrentCode(updatedFiles);
93+
}
9294
}
9395
}
9496

src/components/B4ACodeTree/B4ATreeActions.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ const readFile = (file, newTreeNodes) => {
104104
const verifyFileNames = async (data, newNode) => {
105105
let currentCode = getFiles(data)
106106
currentCode = currentCode && currentCode.children
107-
107+
let overwrite = true;
108108
if ( currentCode ) {
109109
for (let i = 0; i < currentCode.length; i++) {
110110
if (newNode.text && currentCode[i].text === newNode.text.name) {
@@ -114,10 +114,13 @@ const verifyFileNames = async (data, newNode) => {
114114
let alertResponse = await MySwal.fire(overwriteFileModal)
115115
if (alertResponse.value) {
116116
await remove(`#${currentId}`)
117+
} else {
118+
overwrite = false;
117119
}
118120
}
119121
}
120122
}
123+
return overwrite;
121124
}
122125

123126
const getExtension = (fileName) => {
@@ -127,7 +130,7 @@ const getExtension = (fileName) => {
127130

128131
// Function used to add files on tree.
129132
const addFilesOnTree = async (files, currentCode, selectedFolder) => {
130-
let newTreeNodes = [];
133+
let newTreeNodes = [], overwrite = true;
131134
let folder
132135
for (let i = 0; i < files.fileList.length; i++) {
133136
newTreeNodes = readFile({ name: files.fileList[i], code: files.base64[i] }, newTreeNodes);
@@ -137,7 +140,6 @@ const addFilesOnTree = async (files, currentCode, selectedFolder) => {
137140
if (currentCode === '#') {
138141
let inst = $.jstree.reference(currentCode)
139142
let obj = inst.get_node(currentCode);
140-
141143
// Select the folder to insert based on file extension. If is a js file,
142144
// insert on "cloud" folder, else insert on "public" folder. This logic is
143145
// a legacy from the old Cloud Code page
@@ -146,10 +148,11 @@ const addFilesOnTree = async (files, currentCode, selectedFolder) => {
146148
} else
147149
folder = obj.children.find(f => f === selectedFolder);
148150
}
149-
await verifyFileNames(folder, newTreeNodes[j]);
151+
overwrite = await verifyFileNames(folder, newTreeNodes[j]);
152+
if ( overwrite === false ) continue;
150153
addFileOnSelectedNode(newTreeNodes[j].text.name, newTreeNodes[j].data );
151154
}
152-
return currentCode;
155+
return overwrite;
153156
}
154157

155158
const addFileOnSelectedNode = ( name, data = {code: 'data:plain/text;base64,IA=='} ) => {

0 commit comments

Comments
 (0)