UNPKG

react-fileupload-progress

Version:
117 lines (81 loc) 3.76 kB
# React-fileupload-progress [![Build Status](https://travis-ci.org/georgeOsdDev/react-fileupload-progress.svg?branch=develop)](https://travis-ci.org/georgeOsdDev/react-fileupload-progress) [![npm version](https://badge.fury.io/js/react-fileupload-progress.svg)](http://badge.fury.io/js/react-fileupload-progress) [![Gyazo](https://i.gyazo.com/581f05bc048cd38ea8e5a2f535b17bed.gif)](https://gyazo.com/581f05bc048cd38ea8e5a2f535b17bed) React component of Input file and progress bar. This component watch xhr uploading process, and trigger some events. ## Installation ```bash npm install --save react-fileupload-progress ``` ## API ### `FileUploadProgress` #### Props * `url`: File upload endpoint url. `React.PropTypes.string.isRequired` * `method`: Http request method. `React.PropTypes.string.isRequired` ##### Events These handler will called on XMLHttpRequest's progress events. See also [Using XMLHttpRequest on MDN](https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest). * `onProgress`: Called when `xhr` was loaded. Third parameter is the progress of uploading process(0 ~ 100). `React.PropTypes.func(e, request, progress)` * `onLoad`: Called when `xhr` was loaded. `React.PropTypes.func(e, request)` * `onError`: Called when `xhr` become error. `React.PropTypes.func(e, request)` * `onAbort`: Called when `xhr` was aborted. `React.PropTypes.func(e, request)` ##### Customization It is possible to customize view and form. * `formRenderer`: For custom form rendering, **Typo is fixed(#4) from v0.2.0** `onSubmitHandler` should be attach on your custom form's submit event. When `onSubmitHandler` is called, this component start observe `xhr`. `React.PropTypes.func(onSubmitHandler)` * `formGetter`: If custom `formRenderer` is used, you need to implement this method and must return `FormData` object. `React.PropTypes.func => {return form}` * `progressRenderer`: For custom progress rendering, First parameter is the progress of uploading process(0 ~ 100). If `xhr` has error, second parameter will be `true`. When third parameter is called, current `xhr` will be aborted. `React.PropTypes.func(progress, hasError, cancelHandler)` * `formCustomizer`: Called before `xhr` send. You can add any custom form parameter(e.g: id, name, etc) with this method. Must return `form` given as argument. `React.PropTypes.func(form) => {return form}` * `beforeSend`: Called before `xhr` send. You can customize `xhr`(e.g: HTTPHeader, etc) with this method. Must return `request` given as argument. `React.PropTypes.func(request) => {return request}` [![Gyazo](https://i.gyazo.com/f6428f29681c9aab16fc62771bb1980d.gif)](https://gyazo.com/f6428f29681c9aab16fc62771bb1980d) ## Usage example ```javascript 'use strict'; import React from 'react'; import FileUploadProgress from 'react-fileupload-progress'; class App extends React.Component { constructor(props) { super(props); } render() { return ( <div> <h3>Default style</h3> <FileUploadProgress key='ex1' url='http://localhost:3000/api/upload' onProgress={(e, request, progress) => {console.log('progress', e, request, progress);}} onLoad={ (e, request) => {console.log('load', e, request);}} onError={ (e, request) => {console.log('error', e, request);}} onAbort={ (e, request) => {console.log('abort', e, request);}} /> </div> ) } }; React.render(<App/>, document.getElementById('out')); ``` See also [example](https://github.com/georgeOsdDev/react-fileupload-progress/tree/develop/example) ```bash npm install # or yarn npm run start:example ``` ## Build ```bash npm run build ``` ## Tests ```bash npm test ```