fix: file uploading state admonition

This commit is contained in:
Calum H. (IMB11)
2026-05-16 17:03:56 +01:00
parent 02a7774722
commit 680301ed9d
9 changed files with 78 additions and 38 deletions
@@ -96,13 +96,16 @@ export abstract class XHRUploadClient extends AbstractModrinthClient {
return new Promise<T>((resolve, reject) => {
const xhr = new XMLHttpRequest()
const metadata = context.metadata as UploadMetadata
const fallbackTotal = this.getUploadPayloadSize(metadata)
xhr.upload.addEventListener('progress', (e) => {
if (e.lengthComputable) {
const total = e.lengthComputable ? e.total : fallbackTotal
if (total > 0) {
const loaded = Math.min(e.loaded, total)
const progress: UploadProgress = {
loaded: e.loaded,
total: e.total,
progress: e.loaded / e.total,
loaded,
total,
progress: loaded / total,
}
progressCallbacks.forEach((cb) => cb(progress))
}
@@ -146,6 +149,18 @@ export abstract class XHRUploadClient extends AbstractModrinthClient {
})
}
private getUploadPayloadSize(metadata: UploadMetadata): number {
if ('file' in metadata) {
return metadata.file.size
}
let total = 0
metadata.formData.forEach((value) => {
total += value instanceof Blob ? value.size : new Blob([value]).size
})
return total
}
protected createUploadError(xhr: XMLHttpRequest): ModrinthApiError {
let responseData: unknown
try {
-1
View File
@@ -93,7 +93,6 @@ export interface UploadHandle<T> {
export interface UploadState {
isUploading: boolean
currentFileName: string | null
currentFileProgress: number
uploadedBytes: number
totalBytes: number
completedFiles: number