mirror of
https://github.com/transloadit/uppy.git
synced 2026-07-21 01:15:35 +00:00
@uppy/core: make getObjectOfFilesPerState more efficient (#5155)
* @uppy/core: make getObjectOfFilesPerState more efficient * Fixup
This commit is contained in:
parent
d01c50a41f
commit
e9ccb94bd6
1 changed files with 46 additions and 23 deletions
|
|
@ -688,7 +688,6 @@ export class Uppy<M extends Meta, B extends Body> {
|
|||
return ids.map((id) => this.getFile(id))
|
||||
}
|
||||
|
||||
// TODO: remove or refactor this method. It's very inefficient
|
||||
getObjectOfFilesPerState(): {
|
||||
newFiles: UppyFile<M, B>[]
|
||||
startedFiles: UppyFile<M, B>[]
|
||||
|
|
@ -708,28 +707,52 @@ export class Uppy<M extends Meta, B extends Body> {
|
|||
} {
|
||||
const { files: filesObject, totalProgress, error } = this.getState()
|
||||
const files = Object.values(filesObject)
|
||||
const inProgressFiles = files.filter(
|
||||
({ progress }) => !progress.uploadComplete && progress.uploadStarted,
|
||||
)
|
||||
const newFiles = files.filter((file) => !file.progress.uploadStarted)
|
||||
const startedFiles = files.filter(
|
||||
(file) =>
|
||||
file.progress.uploadStarted ||
|
||||
file.progress.preprocess ||
|
||||
file.progress.postprocess,
|
||||
)
|
||||
const uploadStartedFiles = files.filter(
|
||||
(file) => file.progress.uploadStarted,
|
||||
)
|
||||
const pausedFiles = files.filter((file) => file.isPaused)
|
||||
const completeFiles = files.filter((file) => file.progress.uploadComplete)
|
||||
const erroredFiles = files.filter((file) => file.error)
|
||||
const inProgressNotPausedFiles = inProgressFiles.filter(
|
||||
(file) => !file.isPaused,
|
||||
)
|
||||
const processingFiles = files.filter(
|
||||
(file) => file.progress.preprocess || file.progress.postprocess,
|
||||
)
|
||||
|
||||
const inProgressFiles: UppyFile<M, B>[] = []
|
||||
const newFiles: UppyFile<M, B>[] = []
|
||||
const startedFiles: UppyFile<M, B>[] = []
|
||||
const uploadStartedFiles: UppyFile<M, B>[] = []
|
||||
const pausedFiles: UppyFile<M, B>[] = []
|
||||
const completeFiles: UppyFile<M, B>[] = []
|
||||
const erroredFiles: UppyFile<M, B>[] = []
|
||||
const inProgressNotPausedFiles: UppyFile<M, B>[] = []
|
||||
const processingFiles: UppyFile<M, B>[] = []
|
||||
|
||||
for (const file of files) {
|
||||
const { progress } = file
|
||||
|
||||
if (!progress.uploadComplete && progress.uploadStarted) {
|
||||
inProgressFiles.push(file)
|
||||
if (!file.isPaused) {
|
||||
inProgressNotPausedFiles.push(file)
|
||||
}
|
||||
}
|
||||
if (!progress.uploadStarted) {
|
||||
newFiles.push(file)
|
||||
}
|
||||
if (
|
||||
progress.uploadStarted ||
|
||||
progress.preprocess ||
|
||||
progress.postprocess
|
||||
) {
|
||||
startedFiles.push(file)
|
||||
}
|
||||
if (progress.uploadStarted) {
|
||||
uploadStartedFiles.push(file)
|
||||
}
|
||||
if (file.isPaused) {
|
||||
pausedFiles.push(file)
|
||||
}
|
||||
if (progress.uploadComplete) {
|
||||
completeFiles.push(file)
|
||||
}
|
||||
if (file.error) {
|
||||
erroredFiles.push(file)
|
||||
}
|
||||
if (progress.preprocess || progress.postprocess) {
|
||||
processingFiles.push(file)
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
newFiles,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue