import React from 'react' import FileReaderInput from 'react-file-reader-input' import MdFileDownload from 'react-icons/lib/md/file-download' import MdFileUpload from 'react-icons/lib/md/file-upload' import OpenIcon from 'react-icons/lib/md/open-in-browser' import SettingsIcon from 'react-icons/lib/md/settings' import MdInfo from 'react-icons/lib/md/info' import SourcesIcon from 'react-icons/lib/md/layers' import MdSave from 'react-icons/lib/md/save' import MdStyle from 'react-icons/lib/md/style' import MdMap from 'react-icons/lib/md/map' import MdInsertEmoticon from 'react-icons/lib/md/insert-emoticon' import MdFontDownload from 'react-icons/lib/md/font-download' import HelpIcon from 'react-icons/lib/md/help-outline' import InspectionIcon from 'react-icons/lib/md/find-in-page' import AddIcon from 'react-icons/lib/md/add-circle-outline' import AddModal from './modals/AddModal' import SettingsModal from './modals/SettingsModal' import SourcesModal from './modals/SourcesModal' import OpenModal from './modals/OpenModal' import style from '../libs/style' import colors from '../config/colors' import { margins, fontSizes } from '../config/scales' const IconText = props => {props.children} const actionStyle = { display: "inline-block", padding: 10, fontSize: fontSizes[4], cursor: "pointer", color: colors.white, textDecoration: 'none', } const ToolbarLink = props => {props.children} class ToolbarAction extends React.Component { static propTypes = { onClick: React.PropTypes.func.isRequired, } constructor(props) { super(props) this.state = { hover: false } } render() { return this.setState({hover: true})} onMouseOut={e => this.setState({hover: false})} style={{ ...actionStyle, ...this.props.style, backgroundColor: this.state.hover ? colors.gray : null, }}> {this.props.children} } } export default class Toolbar extends React.Component { static propTypes = { mapStyle: React.PropTypes.object.isRequired, onStyleChanged: React.PropTypes.func.isRequired, // A new style has been uploaded onStyleOpen: React.PropTypes.func.isRequired, // Current style is requested for download onStyleDownload: React.PropTypes.func.isRequired, // A dict of source id's and the available source layers sources: React.PropTypes.object.isRequired, } constructor(props) { super(props) this.state = { isOpen: { settings: false, sources: false, open: false, add: false, } } } downloadButton() { return Download } toggleInspectionMode() { const metadata = this.props.mapStyle.metadata || {} const currentRenderer = metadata['maputnik:renderer'] || 'mbgljs' const changedRenderer = currentRenderer === 'inspection' ? 'mbgljs' : 'inspection' const changedStyle = { ...this.props.mapStyle, metadata: { 'maputnik:renderer': changedRenderer } } this.props.onStyleChanged(changedStyle) } toggleModal(modalName) { this.setState({ isOpen: { ...this.state.isOpen, [modalName]: !this.state.isOpen[modalName] } }) } render() { return
Maputnik Maputnik Open {this.downloadButton()} Add Layer Sources Style Settings Inspect Help
} }