add fxA ui elements
This commit is contained in:
parent
4c64593262
commit
894545a6f0
29 changed files with 612 additions and 370 deletions
|
@ -1,14 +1,15 @@
|
|||
/* global MAXFILESIZE */
|
||||
import FileSender from './fileSender';
|
||||
import FileReceiver from './fileReceiver';
|
||||
import { copyToClipboard, delay, openLinksInNewTab, percent } from './utils';
|
||||
import * as metrics from './metrics';
|
||||
import { hasPassword } from './api';
|
||||
import Archive from './archive';
|
||||
import { bytes } from './utils';
|
||||
|
||||
export default function(state, emitter) {
|
||||
let lastRender = 0;
|
||||
let updateTitle = false;
|
||||
state.files = [];
|
||||
|
||||
function render() {
|
||||
emitter.emit('render');
|
||||
|
@ -61,14 +62,9 @@ export default function(state, emitter) {
|
|||
metrics.changedDownloadLimit(file);
|
||||
});
|
||||
|
||||
emitter.on('removeUpload', async ({ file }) => {
|
||||
for (let i = 0; i < state.files.length; i++) {
|
||||
if (state.files[i] === file) {
|
||||
state.files.splice(i, 1);
|
||||
render();
|
||||
return;
|
||||
}
|
||||
}
|
||||
emitter.on('removeUpload', async ({ index }) => {
|
||||
state.archive.remove(index);
|
||||
render();
|
||||
});
|
||||
|
||||
emitter.on('delete', async ({ file, location }) => {
|
||||
|
@ -93,18 +89,28 @@ export default function(state, emitter) {
|
|||
});
|
||||
|
||||
emitter.on('addFiles', async ({ files }) => {
|
||||
for (let i = 0; i < files.length; i++) {
|
||||
state.files.push(files[i]);
|
||||
if (state.archive) {
|
||||
if (!state.archive.addFiles(files)) {
|
||||
// eslint-disable-next-line no-alert
|
||||
alert(state.translate('fileTooBig', { size: bytes(MAXFILESIZE) }));
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
const archive = new Archive(files);
|
||||
if (!archive.checkSize()) {
|
||||
// eslint-disable-next-line no-alert
|
||||
alert(state.translate('fileTooBig', { size: bytes(MAXFILESIZE) }));
|
||||
return;
|
||||
}
|
||||
state.archive = archive;
|
||||
}
|
||||
render();
|
||||
});
|
||||
|
||||
//TODO: hook up to multi-file upload functionality
|
||||
emitter.on('upload', async ({ files, type, dlCount, password }) => {
|
||||
const file = new Archive(files);
|
||||
|
||||
const size = file.size;
|
||||
const sender = new FileSender(file);
|
||||
emitter.on('upload', async ({ type, dlCount, password }) => {
|
||||
if (!state.archive) return;
|
||||
const size = state.archive.size;
|
||||
const sender = new FileSender(state.archive);
|
||||
sender.on('progress', updateProgress);
|
||||
sender.on('encrypting', render);
|
||||
sender.on('complete', render);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue