mirror of
https://github.com/a-nyx/maputnik-with-pmtiles.git
synced 2025-03-18 17:20:45 +01:00
49 lines
1.6 KiB
JavaScript
49 lines
1.6 KiB
JavaScript
import React from 'react'
|
|
import PropTypes from 'prop-types'
|
|
|
|
import DocLabel from './DocLabel'
|
|
import Button from '../Button'
|
|
import FunctionIcon from 'react-icons/lib/md/functions'
|
|
import MdInsertChart from 'react-icons/lib/md/insert-chart'
|
|
|
|
|
|
export default class FunctionButtons extends React.Component {
|
|
static propTypes = {
|
|
fieldSpec: PropTypes.object,
|
|
onZoomClick: PropTypes.func,
|
|
onDataClick: PropTypes.func,
|
|
}
|
|
|
|
render() {
|
|
let makeZoomButton, makeDataButton
|
|
if (this.props.fieldSpec.expression.parameters.includes('zoom')) {
|
|
makeZoomButton = <Button
|
|
className="maputnik-make-zoom-function"
|
|
onClick={this.props.onZoomClick}
|
|
>
|
|
<DocLabel
|
|
label={<FunctionIcon />}
|
|
cursorTargetStyle={{ cursor: 'pointer' }}
|
|
doc={"Turn property into a zoom function to enable a map feature to change with map's zoom level."}
|
|
/>
|
|
</Button>
|
|
|
|
if (this.props.fieldSpec['property-function'] && ['piecewise-constant', 'interpolated'].indexOf(this.props.fieldSpec['function']) !== -1) {
|
|
makeDataButton = <Button
|
|
className="maputnik-make-data-function"
|
|
onClick={this.props.onDataClick}
|
|
>
|
|
<DocLabel
|
|
label={<MdInsertChart />}
|
|
cursorTargetStyle={{ cursor: 'pointer' }}
|
|
doc={"Turn property into a data function to enable a map feature to change according to data properties and the map's zoom level."}
|
|
/>
|
|
</Button>
|
|
}
|
|
return <div>{makeDataButton}{makeZoomButton}</div>
|
|
}
|
|
else {
|
|
return null
|
|
}
|
|
}
|
|
}
|