Skip to content

Commit 4563cad

Browse files
authored
Added file uploading
and fixed bugs
2 parents 890b985 + 9ecb1d9 commit 4563cad

File tree

6 files changed

+80
-61
lines changed

6 files changed

+80
-61
lines changed

api/_cors.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,21 @@ export default async function handler(request, response) {
33

44
const https = require('https');
55

6-
console.log(request);
76

8-
const {status, data} = await getRequest(decodeURIComponent(request.query.url));
7+
let query = Object.entries(request.query);
8+
9+
query.shift();
10+
11+
let url = request.query.url;
12+
13+
query.forEach(entry => {
14+
15+
url += '&' + entry[0] + '=' + entry[1];
16+
17+
});
18+
19+
20+
const {status, data} = await getRequest(url);
921

1022
response.status(status).send(data);
1123

codedrop.js

Lines changed: 51 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,20 @@ function processFile(file) {
107107
const reader = new FileReader();
108108

109109
reader.addEventListener('load', (event) => {
110-
111-
cd.textContent = event.target.result;
110+
111+
if (hashCode(event.target.result) !== hashCode(cd.textContent)) {
112+
113+
cd.textContent = event.target.result;
114+
115+
}
116+
112117
cd.lang = getFileLang(file.name);
118+
119+
cd.scrollTo(0, 0);
120+
121+
// set caret pos in codeit
122+
if (!isMobile) cd.setSelection(0, 0);
123+
113124
cd.focus();
114125

115126
// change tab character
@@ -123,22 +134,26 @@ function processFile(file) {
123134

124135
}
125136

126-
cd.history = [];
137+
cd.history = [{ html: cd.innerHTML, pos: cd.getSelection() }];
127138

128-
saveSelectedFileContent();
129-
saveSelectedFileCaretPos();
130-
saveSelectedFileScrollPos();
131-
saveSelectedFileLang();
139+
window.addEventListener('load', () => {
140+
141+
saveSelectedFileContent();
142+
saveSelectedFileCaretPos();
143+
saveSelectedFileScrollPos();
144+
saveSelectedFileLang();
145+
146+
});
132147

133-
console.log('Loaded local file. Name: ' + file.name + ' Size: ' + file.size + ' bytes');
148+
showMessage('Loaded ' + file.name + '!', 5000);
134149

135150
});
136151

137152
reader.readAsText(file);
138153

139154
}
140155

141-
cd.on('drop', (ev) => {
156+
body.addEventListener('drop', (ev) => {
142157

143158
// prevent default behavior (prevent file from being opened)
144159
ev.preventDefault();
@@ -147,7 +162,7 @@ cd.on('drop', (ev) => {
147162
if (gitToken == '') {
148163

149164
// remove drop indication
150-
document.body.classList.remove('focus');
165+
cd.classList.remove('focus');
151166

152167
if (ev.dataTransfer.items) {
153168

@@ -179,7 +194,7 @@ cd.on('drop', (ev) => {
179194

180195
})
181196

182-
cd.on('dragover', (ev) => {
197+
body.addEventListener('dragover', (ev) => {
183198

184199
// prevent default behavior (prevent file from being opened)
185200
ev.preventDefault();
@@ -188,47 +203,50 @@ cd.on('dragover', (ev) => {
188203
if (gitToken == '') {
189204

190205
// show drop indication
191-
document.body.classList.add('focus');
206+
cd.classList.add('focus');
192207

193208
}
194209

195210
})
196211

197-
cd.on('dragleave', (ev) => {
212+
body.addEventListener('dragleave', (ev) => {
198213

199214
// if not logged into git
200215
if (gitToken == '') {
201216

202217
// remove drop indication
203-
document.body.classList.remove('focus');
218+
cd.classList.remove('focus');
204219

205220
}
206221

207222
})
208223

209224
if ('launchQueue' in window) {
210225

211-
launchQueue.setConsumer(async (launchParams) => {
212-
213-
// if not logged into git
214-
if (gitToken == '') {
215-
216-
// nothing to do when the queue is empty
217-
if (!launchParams.files.length) {
218-
return;
219-
}
220-
221-
for (const fileHandle of launchParams.files) {
222-
223-
// handle the file
224-
const fileData = await fileHandle.getFile();
225-
226-
processFile(fileData);
227-
228-
}
229-
226+
window.launchQueue.setConsumer(async (launchParams) => {
227+
228+
console.log('Launched with: ', launchParams);
229+
230+
if (!launchParams.files.length) {
231+
return;
230232
}
233+
234+
const launchFile = launchParams.files[0];
235+
236+
237+
// if logged into git
238+
if (gitToken) {
239+
240+
return;
241+
242+
}
243+
244+
245+
// handle the file
246+
const fileData = await launchFile.getFile();
231247

248+
processFile(fileData);
249+
232250
});
233251

234252
}

filebrowser.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -698,15 +698,15 @@ async function renderSidebarHTML() {
698698

699699
}
700700

701-
out = `
701+
out += `
702702
<div class="item repo" ` + ('fullName="' + modRepoName + '"') + `>
703703
<div class="label">
704704
`+ repoIcon +`
705705
<a class="name">`+ fullName +`</a>
706706
</div>
707707
`+ arrowIcon +`
708708
</div>
709-
` + out;
709+
`;
710710

711711
}
712712

@@ -1177,7 +1177,7 @@ async function loadFileInHTML(fileEl, fileSha) {
11771177
cd.scrollTo(selectedFile.scrollPos[0], selectedFile.scrollPos[1]);
11781178

11791179
// clear codeit history
1180-
cd.history = [];
1180+
cd.history = [{ html: cd.innerHTML, pos: cd.getSelection() }];
11811181

11821182
// update line numbers
11831183
updateLineNumbersHTML();
@@ -2040,7 +2040,7 @@ function createNewFileInHTML() {
20402040
cd.lang = getFileLang(fileName);
20412041

20422042
// clear codeit history
2043-
cd.history = [];
2043+
cd.history = [{ html: cd.innerHTML, pos: cd.getSelection() }];
20442044

20452045
// update line numbers
20462046
updateLineNumbersHTML();
@@ -2433,13 +2433,13 @@ function protectUnsavedCode() {
24332433
// protect unsaved code by clearing codeit
24342434

24352435
// clear codeit contents
2436-
cd.textContent = '';
2436+
cd.textContent = '\r\n';
24372437

24382438
// change codeit lang
24392439
cd.lang = '';
24402440

24412441
// clear codeit history
2442-
cd.history = [];
2442+
cd.history = [{ html: cd.innerHTML, pos: cd.getSelection() }];
24432443

24442444
// update line numbers
24452445
updateLineNumbersHTML();

manifest.js

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21,21 +21,22 @@ let manifest = {
2121
],
2222
"file_handlers": [
2323
{
24-
"action": window.location.origin + "/full",
24+
"action": window.location.origin + "/full?upload=true",
25+
"name": "code",
2526
"accept": {
26-
"text/css": [".css"]
27+
"text/plain": ["text/*", "application/json"]
2728
}
2829
}
2930
],
3031
"share_target": {
31-
"action": window.location.origin + "/full",
32+
"action": window.location.origin + "/full?upload=true",
3233
"method": "POST",
3334
"enctype": "multipart/form-data",
3435
"params": {
3536
"files": [
3637
{
37-
"name": "file",
38-
"accept": ["text/css", "application/json", ".css"]
38+
"name": "code",
39+
"accept": ["text/*", "application/json"]
3940
}
4041
]
4142
}
@@ -44,19 +45,7 @@ let manifest = {
4445
"launch_handler": {
4546
"route_to": "new-client"
4647
},
47-
"capture_links": "new-client",
48-
"screenshots": [
49-
{
50-
"src": window.location.origin + "/homepage/featured-pic.png",
51-
"type": "image/png",
52-
"sizes": "750x1590"
53-
},
54-
{
55-
"src": window.location.origin + "/homepage/secondary-pic.png",
56-
"type": "image/png",
57-
"sizes": "750x1590"
58-
}
59-
]
48+
"capture_links": "new-client"
6049
};
6150

6251

utils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ const body = document.body,
6868

6969

7070
// version
71-
const version = '3.0.1';
71+
const version = '3.0.2';
7272
versionEl.innerText = version;
7373

7474
let logVersion = () => {

worker/client-channel.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55

66
// update worker name when updating worker
7-
const WORKER_NAME = 'codeit-worker-v531';
7+
const WORKER_NAME = 'codeit-worker-v532';
88

99

1010
// internal paths

0 commit comments

Comments
 (0)