Spaces:
Build error
Build error
import { upload } from '@/service/base' | |
type ImageUploadParams = { | |
file: File | |
onProgressCallback: (progress: number) => void | |
onSuccessCallback: (res: { id: string }) => void | |
onErrorCallback: () => void | |
} | |
type ImageUpload = (v: ImageUploadParams, isPublic?: boolean, url?: string) => void | |
export const imageUpload: ImageUpload = ({ | |
file, | |
onProgressCallback, | |
onSuccessCallback, | |
onErrorCallback, | |
}, isPublic, url) => { | |
const formData = new FormData() | |
formData.append('file', file) | |
const onProgress = (e: ProgressEvent) => { | |
if (e.lengthComputable) { | |
const percent = Math.floor(e.loaded / e.total * 100) | |
onProgressCallback(percent) | |
} | |
} | |
upload({ | |
xhr: new XMLHttpRequest(), | |
data: formData, | |
onprogress: onProgress, | |
}, isPublic, url) | |
.then((res: { id: string }) => { | |
onSuccessCallback(res) | |
}) | |
.catch(() => { | |
onErrorCallback() | |
}) | |
} | |