Skip to content

Commit fea42e6

Browse files
committed
Update codedrop.js
1 parent 0e0c865 commit fea42e6

File tree

1 file changed

+62
-5
lines changed

1 file changed

+62
-5
lines changed

codedrop.js

Lines changed: 62 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,12 +117,56 @@ function getFileLang(src) {
117117

118118
function processFile(file) {
119119

120-
if (liveView.classList.contains('file-open')) return;
121-
122120
const reader = new FileReader();
123121

124122
reader.addEventListener('load', (event) => {
125123

124+
// clear existing selections in HTML
125+
if (fileWrapper.querySelector('.selected')) {
126+
fileWrapper.querySelector('.selected').classList.remove('selected');
127+
}
128+
129+
// if adding a new file, remove it
130+
if (fileWrapper.querySelector('.focused')) {
131+
132+
fileWrapper.querySelector('.focused').classList.add('hidden');
133+
134+
window.setTimeout(() => {
135+
fileWrapper.querySelector('.focused').remove();
136+
}, 180);
137+
138+
}
139+
140+
141+
// show all files in HTML
142+
let files = fileWrapper.querySelectorAll('.item[style="display: none;"]');
143+
files.forEach(file => { file.style.display = '' });
144+
145+
header.classList.remove('searching');
146+
147+
148+
// if previous file selection exists
149+
if (selectedFile.sha) {
150+
151+
// get previous selection in modifiedFiles array
152+
let selectedItem = modifiedFiles[selectedFile.sha];
153+
154+
// if previous selection was modified
155+
if (selectedItem) {
156+
157+
// save previous selection in localStorage
158+
updateModFileContent(selectedFile.sha, selectedFile.content);
159+
updateModFileCaretPos(selectedFile.sha, selectedFile.caretPos);
160+
updateModFileScrollPos(selectedFile.sha, selectedFile.scrollPos);
161+
162+
}
163+
164+
}
165+
166+
167+
changeSelectedFile('', '', file.name, encodeUnicode(event.target.result), getFileLang(file.name), [0, 0], [0, 0], false);
168+
169+
126170
if (hashCode(event.target.result) !== hashCode(cd.textContent)) {
127171

128172
cd.textContent = event.target.result;
@@ -141,9 +185,22 @@ function processFile(file) {
141185
cd.history.records = [{ html: cd.innerHTML, pos: cd.getSelection() }];
142186
cd.history.pos = 0;
143187

144-
changeSelectedFile('', '', file.name, encodeUnicode(event.target.result), cd.lang, [0, 0], [0, 0], false);
145-
146-
showMessage('Loaded ' + file.name + '!', 5000);
188+
// update line numbers
189+
updateLineNumbersHTML();
190+
191+
if (liveView.classList.contains('file-open')) {
192+
193+
liveView.classList.add('notransition');
194+
liveView.classList.remove('file-open');
195+
196+
onNextFrame(() => {
197+
liveView.classList.remove('notransition');
198+
});
199+
200+
}
201+
202+
203+
showMessage('Loaded ' + file.name + '!');
147204

148205
});
149206

0 commit comments

Comments
 (0)