uppy/packages/@uppy/utils/src/FileProgress.ts
Evgenia Karunus 18cd1db114
Dashboard - convert some files to typescript (#5359)
* FileProgress.ts - convert to typescript

* Buttons.tsx - convert to typescript

Buttons.tsx - convert to typescript (partial)

Buttons.tsx - convert to typescript (partial)

Buttons.tsx - convert to typescript

* everywhere - remove `ComponentChild`

* FileItem.tsx - convert to typescript

* FileList.jsx - fix the comments, they got a bit shuffled some time ago

* FileList.tsx - convert to typscript

* Dashboard.tsx - add back missing props

* FileInfo.tsx - convert to typescript

FileInfo.tsx - convert to typescript (partial)

FileInfo.tsx - convert to typescript

* everywhere - remove excessive props
2024-07-24 06:12:45 +05:00

34 lines
995 B
TypeScript

export interface DeterminateFileProcessing {
mode: 'determinate'
message: string
value: number
}
export interface IndeterminateFileProcessing {
mode: 'indeterminate'
message?: string
value?: 0
}
export type FileProcessingInfo =
| IndeterminateFileProcessing
| DeterminateFileProcessing
// TODO explore whether all of these properties need to be optional
interface FileProgressBase {
uploadComplete?: boolean
percentage?: number
bytesTotal: number | null
preprocess?: FileProcessingInfo
postprocess?: FileProcessingInfo
}
// FileProgress is either started or not started. We want to make sure TS doesn't
// let us mix the two cases, and for that effect, we have one type for each case:
export type FileProgressStarted = FileProgressBase & {
uploadStarted: number
bytesUploaded: number
}
export type FileProgressNotStarted = FileProgressBase & {
uploadStarted: null
bytesUploaded: false
}
export type FileProgress = FileProgressStarted | FileProgressNotStarted