Home

Awesome

material-ui-upload

Build Status

Upload controls made in material-ui using FileAPI

Components

Upload

Upload button, based on FlatButton.

Upload button

Upload Preview

Upload with preview for images, based on Card.

Empty

Upload preview

With pictures

Upload preview

Requirements

Installation

yarn add material-ui-upload

Or with npm

npm i --save material-ui-upload

Usage example

You could see live examples providen with storybook, just make server in the root of the repository.

Upload

import React, {Component} from 'react';
import Upload from 'material-ui-upload/Upload';

class MyComponent extends Component {
    onFileLoad = (e, file) => console.log(e.target.result, file.name);

    render() {
        return (
            <Upload label="Add" onFileLoad={this.onFileLoad}/>
        );
    }
}

UploadPreview

import React, {Component} from 'react';
import UploadPreview from 'material-ui-upload/UploadPreview';

class MyComponent extends Component {
    constructor() {
        super();
        this.state = {
            pictures: {}
        };
    }

    onChange = (pictures) => this.setState({pictures});

    render() {
        return (
            <UploadPreview
              title="Picture"
              label="Add"
              initialItems={this.state.pictures}
              onChange={this.onChange}
              />
        );
    }
}

Properties

Upload

FlatButton props can be used on this component.

For FlatButton props please see material-ui docs.

NameTypeDefaultDescription
fileTypeRegexRegExp/.*/Regexp that matches allowed file names.
onFileLoadfunction(e, file) => undefinedFileReader#onload event handler which receives a FileReader event and original file object.
buttonControlfunctionmaterial-ui/FlatButtonControl constructor to use as upload button.

UploadPreview

Upload component props can be used on this component.

NameTypeDefaultDescription
titlestring''Title of the Card.
onFileLoadfunction(e, file) => undefinedFileReader#onload event handler which receives a FileReader event and original file object.
labelstringUploadUpload button label.
onChangefunction(items) => undefinedWhen state of the component changes(file added, removed, removed all) this function will be fired with a hash of items as argument(each item key is a sha1 of the base64 dataURI this may change to 'hash of a file content' in the future).
initialItemsobject{}Predefined items.

License

MIT