mirror of
https://github.com/transloadit/uppy.git
synced 2026-07-23 02:08:30 +00:00
add core: prefix to events
This commit is contained in:
parent
63eeecfc60
commit
daba330da7
5 changed files with 33 additions and 42 deletions
|
|
@ -145,7 +145,7 @@ export default class Core {
|
|||
this.bus.emit('file-added', fileID)
|
||||
|
||||
if (fileTypeGeneral === 'image' && !isRemote) {
|
||||
this.addFileThumbnail(newFile.id)
|
||||
this.addThumbnail(newFile.id)
|
||||
}
|
||||
|
||||
if (this.opts.autoProceed) {
|
||||
|
|
@ -153,11 +153,17 @@ export default class Core {
|
|||
}
|
||||
}
|
||||
|
||||
addFileThumbnail (fileID) {
|
||||
removeFile (fileID) {
|
||||
const updatedFiles = Object.assign({}, this.getState().files)
|
||||
delete updatedFiles[fileID]
|
||||
this.setState({files: updatedFiles})
|
||||
}
|
||||
|
||||
addThumbnail (fileID) {
|
||||
const file = this.getState().files[fileID]
|
||||
|
||||
Utils.readFile(file.data)
|
||||
.then(Utils.createImageThumbnail)
|
||||
.then((imgDataURI) => Utils.createImageThumbnail(imgDataURI, 200))
|
||||
.then((thumbnail) => {
|
||||
const updatedFiles = Object.assign({}, this.getState().files)
|
||||
const updatedFile = Object.assign({}, updatedFiles[fileID], {
|
||||
|
|
@ -181,24 +187,20 @@ export default class Core {
|
|||
|
||||
// const bus = this.bus
|
||||
|
||||
this.on('file-add', (data) => {
|
||||
this.on('core:file-add', (data) => {
|
||||
this.addFile(data)
|
||||
})
|
||||
|
||||
// `remove-file` removes a file from `state.files`, for example when
|
||||
// a user decides not to upload particular file and clicks a button to remove it
|
||||
this.on('file-remove', (fileID) => {
|
||||
const updatedFiles = Object.assign({}, this.getState().files)
|
||||
delete updatedFiles[fileID]
|
||||
this.setState({files: updatedFiles})
|
||||
this.on('core:file-remove', (fileID) => {
|
||||
this.removeFile(fileID)
|
||||
})
|
||||
|
||||
this.on('core:file-upload-started', (fileID, upload) => {
|
||||
this.on('core:upload-started', (fileID, upload) => {
|
||||
const updatedFiles = Object.assign({}, this.getState().files)
|
||||
const updatedFile = Object.assign({}, updatedFiles[fileID],
|
||||
Object.assign({}, {
|
||||
// can’t do that, because immutability. ??
|
||||
// upload: upload,
|
||||
progress: Object.assign({}, updatedFiles[fileID].progress, {
|
||||
uploadStarted: Date.now()
|
||||
})
|
||||
|
|
@ -209,7 +211,8 @@ export default class Core {
|
|||
this.setState({files: updatedFiles})
|
||||
})
|
||||
|
||||
this.on('upload-progress', (data) => {
|
||||
this.on('core:upload-progress', (data) => {
|
||||
console.log(data)
|
||||
const fileID = data.id
|
||||
const updatedFiles = Object.assign({}, this.getState().files)
|
||||
if (!updatedFiles[fileID]) {
|
||||
|
|
@ -231,16 +234,15 @@ export default class Core {
|
|||
// calculate total progress, using the number of files currently uploading,
|
||||
// multiplied by 100 and the summ of individual progress of each file
|
||||
const inProgress = Object.keys(updatedFiles).filter((file) => {
|
||||
return !updatedFiles[file].progress.uploadComplete &&
|
||||
updatedFiles[file].progress.uploadStarted
|
||||
return updatedFiles[file].progress.uploadStarted
|
||||
})
|
||||
const progressMax = Object.keys(inProgress).length * 100
|
||||
const progressMax = inProgress.length * 100
|
||||
let progressAll = 0
|
||||
inProgress.forEach((file) => {
|
||||
progressAll = progressAll + updatedFiles[file].progress.percentage
|
||||
})
|
||||
|
||||
const totalProgress = progressAll * 100 / progressMax
|
||||
const totalProgress = Math.round((progressAll * 100 / progressMax).toFixed(2))
|
||||
|
||||
if (totalProgress === 100) {
|
||||
const completeFiles = Object.keys(updatedFiles).filter((file) => {
|
||||
|
|
@ -256,7 +258,7 @@ export default class Core {
|
|||
})
|
||||
})
|
||||
|
||||
this.on('upload-success', (fileID, uploadURL) => {
|
||||
this.on('core:upload-success', (fileID, uploadURL) => {
|
||||
const updatedFiles = Object.assign({}, this.getState().files)
|
||||
const updatedFile = Object.assign({}, updatedFiles[fileID], {
|
||||
progress: Object.assign({}, updatedFiles[fileID].progress, {
|
||||
|
|
@ -284,7 +286,6 @@ export default class Core {
|
|||
}
|
||||
|
||||
isOnline (status) {
|
||||
// const bus = this.bus
|
||||
const online = status || window.navigator.onLine
|
||||
if (!online) {
|
||||
this.emit('is-offline')
|
||||
|
|
|
|||
|
|
@ -22,13 +22,7 @@ export default function Dashboard (props) {
|
|||
})
|
||||
|
||||
const removeFile = (fileID) => {
|
||||
// this seems to be working in latest Chrome, Firefox and Safari,
|
||||
// // but might not be 100% cross-browser, needs testing
|
||||
// // https://davidwalsh.name/css-animation-callback
|
||||
// // el.addEventListener('animationend', () => {
|
||||
// // bus.emit('file-remove', file.id)
|
||||
// // })
|
||||
props.bus.emit('file-remove', fileID)
|
||||
props.bus.emit('core:file-remove', fileID)
|
||||
}
|
||||
|
||||
const startUpload = (ev) => {
|
||||
|
|
@ -58,7 +52,7 @@ export default function Dashboard (props) {
|
|||
const files = toArray(ev.target.files)
|
||||
|
||||
files.forEach((file) => {
|
||||
props.bus.emit('file-add', {
|
||||
props.bus.emit('core:file-add', {
|
||||
source: props.id,
|
||||
name: file.name,
|
||||
type: file.type,
|
||||
|
|
@ -73,8 +67,7 @@ export default function Dashboard (props) {
|
|||
aria-hidden="${props.inline ? 'false' : modal.isHidden}"
|
||||
aria-label="${!props.inline
|
||||
? props.i18n('dashboardWindowTitle')
|
||||
: props.i18n('dashboardTitle')
|
||||
}"
|
||||
: props.i18n('dashboardTitle')}"
|
||||
role="dialog"
|
||||
onpaste=${props.onPaste}>
|
||||
|
||||
|
|
|
|||
|
|
@ -87,8 +87,7 @@ export default class DragDrop extends Plugin {
|
|||
const files = toArray(ev.target.files)
|
||||
|
||||
files.forEach((file) => {
|
||||
console.log(file)
|
||||
this.core.emitter.emit('file-add', {
|
||||
this.core.emitter.emit('core:file-add', {
|
||||
source: this.id,
|
||||
name: file.name,
|
||||
type: file.type,
|
||||
|
|
@ -101,7 +100,6 @@ export default class DragDrop extends Plugin {
|
|||
const firstInput = document.querySelector(`${this.target} .UppyDragDrop-focus`)
|
||||
|
||||
// only works for the first time if wrapped in setTimeout for some reason
|
||||
// firstInput.focus()
|
||||
setTimeout(function () {
|
||||
firstInput.focus()
|
||||
}, 10)
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ export default class Tus10 extends Plugin {
|
|||
},
|
||||
onProgress: (bytesUploaded, bytesTotal) => {
|
||||
// Dispatch progress event
|
||||
this.core.emitter.emit('upload-progress', {
|
||||
this.core.emitter.emit('core:upload-progress', {
|
||||
uploader: this,
|
||||
id: file.id,
|
||||
bytesUploaded: bytesUploaded,
|
||||
|
|
@ -104,14 +104,14 @@ export default class Tus10 extends Plugin {
|
|||
})
|
||||
},
|
||||
onSuccess: () => {
|
||||
this.core.emitter.emit('upload-success', file.id, upload.url)
|
||||
this.core.emitter.emit('core:upload-success', file.id, upload.url)
|
||||
|
||||
this.core.log(`Download ${upload.file.name} from ${upload.url}`)
|
||||
resolve(upload)
|
||||
}
|
||||
})
|
||||
|
||||
this.core.emitter.on('file-remove', (fileID) => {
|
||||
this.core.emitter.on('core:file-remove', (fileID) => {
|
||||
if (fileID === file.id) {
|
||||
console.log('removing file: ', fileID)
|
||||
upload.abort()
|
||||
|
|
@ -139,7 +139,7 @@ export default class Tus10 extends Plugin {
|
|||
})
|
||||
|
||||
upload.start()
|
||||
this.core.emitter.emit('core:file-upload-started', file.id, upload)
|
||||
this.core.emitter.emit('core:upload-started', file.id, upload)
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -181,7 +181,7 @@ export default class Tus10 extends Plugin {
|
|||
this.core.log(`Upload progress: ${progress}`)
|
||||
|
||||
// Dispatch progress event
|
||||
this.core.emitter.emit('upload-progress', {
|
||||
this.core.emitter.emit('core:upload-progress', {
|
||||
uploader: this,
|
||||
id: file.id,
|
||||
bytesUploaded: bytesUploaded,
|
||||
|
|
@ -214,12 +214,11 @@ export default class Tus10 extends Plugin {
|
|||
|
||||
return Promise.all(uploaders)
|
||||
.then(() => {
|
||||
return {
|
||||
uploadedCount: files.length
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
this.core.log('All files uploaded')
|
||||
return { uploadedCount: files.length }
|
||||
})
|
||||
.catch((err) => {
|
||||
this.core.log('Upload error: ' + err)
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ export default class Webcam extends Plugin {
|
|||
type: opts.mimeType
|
||||
}
|
||||
|
||||
this.core.emitter.emit('file-add', tagFile)
|
||||
this.core.emitter.emit('core:file-add', tagFile)
|
||||
}
|
||||
|
||||
render (state) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue