import React from 'react'; import FileReaderInput from 'react-file-reader-input'; import { Button, Text } from 'rebass'; import { Menu, NavItem, Tooltip, Container, Block, Fixed } from 'rebass' import MdFileDownload from 'react-icons/lib/md/file-download' import MdFileUpload from 'react-icons/lib/md/file-upload' import MdSettings from 'react-icons/lib/md/settings' import MdLayers from 'react-icons/lib/md/layers' import MdSave from 'react-icons/lib/md/save' import MdMap from 'react-icons/lib/md/map' import style from './style.js' import { fullHeight } from './theme.js' import theme from './theme.js'; export class Toolbar extends React.Component { static propTypes = { // A new style has been uploaded onStyleUpload: React.PropTypes.func.isRequired, // Current style is requested for download onStyleDownload: React.PropTypes.func.isRequired, // Style is explicitely saved to local cache onStyleSave: React.PropTypes.func, // Open settings drawer onOpenSettings: React.PropTypes.func, // Open sources drawer onOpenSources: React.PropTypes.func, // Open layers drawer onOpenLayers: React.PropTypes.func, // Whether a style is available for download or saving // A style with no layers should not be available styleAvailable: React.PropTypes.bool, } onUpload(_, files) { const [e, file] = files[0]; const reader = new FileReader(); reader.readAsText(file, "UTF-8"); reader.onload = e => { this.props.onStyleUpload(style.fromJSON(JSON.parse(e.target.result))); } reader.onerror = e => console.log(e.target); } saveButton() { if(this.props.styleAvailable) { return } return null } downloadButton() { if(this.props.styleAvailable) { return } return null } render() { return {this.downloadButton()} {this.saveButton()} } }