import React from 'react' import PropTypes from 'prop-types' import FileReaderInput from 'react-file-reader-input' import classnames from 'classnames' 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 logoImage from 'maputnik-design/logos/logo-color.svg' import SettingsModal from './modals/SettingsModal' import ExportModal from './modals/ExportModal' import SourcesModal from './modals/SourcesModal' import OpenModal from './modals/OpenModal' import style from '../libs/style' class IconText extends React.Component { static propTypes = { children: PropTypes.node, } render() { return {this.props.children} } } class ToolbarLink extends React.Component { static propTypes = { className: PropTypes.string, children: PropTypes.node, } render() { return {this.props.children} } } class ToolbarAction extends React.Component { static propTypes = { children: PropTypes.node } render() { return {this.props.children} } } export default class Toolbar extends React.Component { static propTypes = { mapStyle: PropTypes.object.isRequired, inspectModeEnabled: PropTypes.bool.isRequired, onStyleChanged: PropTypes.func.isRequired, // A new style has been uploaded onStyleOpen: PropTypes.func.isRequired, // A dict of source id's and the available source layers sources: PropTypes.object.isRequired, onInspectModeToggle: PropTypes.func.isRequired, children: PropTypes.node } constructor(props) { super(props) this.state = { isOpen: { settings: false, sources: false, open: false, add: false, export: false, } } } toggleModal(modalName) { this.setState({ isOpen: { ...this.state.isOpen, [modalName]: !this.state.isOpen[modalName] } }) } render() { return