feat: add callback and emit to track hashing progress
This commit is contained in:
parent
0a51f3e76d
commit
1ff5f205b2
|
@ -8,7 +8,7 @@ import DropTarget, {type DropTargetOptions} from "./uppy-dropzone"
|
||||||
import {useSdk} from "~/components/lib/sdk-context.js";
|
import {useSdk} from "~/components/lib/sdk-context.js";
|
||||||
import UppyFileUpload from "~/components/lib/uppy-file-upload.js";
|
import UppyFileUpload from "~/components/lib/uppy-file-upload.js";
|
||||||
import {PROTOCOL_S5, Sdk} from "@lumeweb/portal-sdk";
|
import {PROTOCOL_S5, Sdk} from "@lumeweb/portal-sdk";
|
||||||
import {S5Client} from "@lumeweb/s5-js";
|
import {S5Client, HashProgressEvent} from "@lumeweb/s5-js";
|
||||||
|
|
||||||
const LISTENING_EVENTS = [
|
const LISTENING_EVENTS = [
|
||||||
"upload",
|
"upload",
|
||||||
|
@ -98,7 +98,18 @@ export function useUppy({
|
||||||
const file = uppyInstance.current?.getFile(fileID) as UppyFile
|
const file = uppyInstance.current?.getFile(fileID) as UppyFile
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
if (file.uploader === "tus") {
|
if (file.uploader === "tus") {
|
||||||
const options = await sdk.protocols!().get<S5Client>(PROTOCOL_S5).getSdk().getTusOptions(file.data as File)
|
const hashProgressCb = (event: HashProgressEvent) => {
|
||||||
|
uppyInstance.current?.emit("preprocess-progress", file, {
|
||||||
|
uploadStarted: false,
|
||||||
|
bytesUploaded: 0,
|
||||||
|
preprocess: {
|
||||||
|
mode: "determinate",
|
||||||
|
message: "Hashing file...",
|
||||||
|
value: Math.round((event.total / event.total) * 100)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const options = await sdk.protocols!().get<S5Client>(PROTOCOL_S5).getSdk().getTusOptions(file.data as File, {}, {onHashProgress: hashProgressCb})
|
||||||
uppyInstance.current?.setFileState(fileID, {
|
uppyInstance.current?.setFileState(fileID, {
|
||||||
tus: options,
|
tus: options,
|
||||||
meta: {
|
meta: {
|
||||||
|
|
Loading…
Reference in New Issue