react-file-chunk-uploader
TypeScript icon, indicating that this package has built-in type declarations

0.1.0 • Public • Published

Example how to use

const requestOptions = (body, contentType = null) => {
    const headers = {
        Authorization: 'Bearer <TOKEN>',
    };
    if (contentType) {
        headers['Content-Type'] = contentType;
    }
    return {
        method: 'POST',
        headers,
        body,
    };
};

const onUploadChunk = (params) => {
    const formData = new FormData();
    formData.append('file', params.chunk, params.fileName);

    return fetch(
        `<ENDPOINT TO UPLOAD A CHUNK>`,
        requestOptions(formData),
    );
};

const onUploadCompleted = async (params) => {
    const data = await fetch(
        `<ENDPOINT TO COMPLETE UPLOADING>`,
        requestOptions(
            JSON.stringify({ fileName: params.fileName, originFileName: params.originFileName }),
            'application/json',
        ),
    );

    const responseData = await data.json(); // {id, path}

    if (responseData.id) {
        await fetch(
            `<ENDPOINT IF YOU NEED TO ASSIGN AN UPLOADED FILE TO SOME ENTITY>`,
            requestOptions(
                JSON.stringify({ productViewId: 1, mediaResourceId: responseData.id }),
                'application/json',
            ),
        );
    }

    //You can move onUploadCompleted function inside you component and run some hooks after compliting. 
    // Depends on response
    //console.log('path', responseData.path);
    return data;
};

const FileUploaderComponent = () => {
    const fileUploaderHook = useFileUploader({ onUploadChunk, onUploadCompleted });

    const onChange = useCallback((e) => {
        fileUploaderHook.handleFile(e.target.files[0]);
    }, []);

    return (
        <div>
            <input type="file" onChange={onChange} />
            <div>{fileUploaderHook.fileToBeUpload?.size}</div>
            <div>{fileUploaderHook.progress}</div>
        </div>
    );
}

Readme

Keywords

none

Package Sidebar

Install

npm i react-file-chunk-uploader

Weekly Downloads

0

Version

0.1.0

License

MIT

Unpacked Size

8.14 kB

Total Files

10

Last publish

Collaborators

  • pashkinz92