redux-devtools/packages/redux-devtools-core/src/app/components/BottomButtons.js

50 lines
1.6 KiB
JavaScript
Raw Normal View History

2019-01-03 17:14:25 +03:00
import React, { Component } from 'react';
import PropTypes from 'prop-types';
2019-01-10 20:23:33 +03:00
import { Button, Toolbar, Divider } from 'devui';
2019-01-03 17:14:25 +03:00
import SaveIcon from 'react-icons/lib/md/save';
import ExportButton from './buttons/ExportButton';
import ImportButton from './buttons/ImportButton';
import PrintButton from './buttons/PrintButton';
import DispatcherButton from './buttons/DispatcherButton';
import SliderButton from './buttons/SliderButton';
import MonitorSelector from './MonitorSelector';
export default class BottomButtons extends Component {
static propTypes = {
dispatcherIsOpen: PropTypes.bool,
sliderIsOpen: PropTypes.bool,
options: PropTypes.object.isRequired
};
2019-01-10 20:23:33 +03:00
shouldComponentUpdate(nextProps) {
2019-01-10 21:51:14 +03:00
return (
nextProps.dispatcherIsOpen !== this.props.dispatcherIsOpen ||
nextProps.sliderIsOpen !== this.props.sliderIsOpen ||
nextProps.options !== this.props.options
);
2019-01-03 17:14:25 +03:00
}
render() {
const features = this.props.options.features;
return (
<Toolbar borderPosition="top">
2019-01-10 21:51:14 +03:00
{features.export && (
<Button title="Save a report" tooltipPosition="top-right">
<SaveIcon />
</Button>
)}
{features.export && <ExportButton />}
{features.import && <ImportButton />}
2019-01-03 17:14:25 +03:00
<PrintButton />
<Divider />
<MonitorSelector />
<Divider />
2019-01-10 21:51:14 +03:00
{features.jump && <SliderButton isOpen={this.props.sliderIsOpen} />}
{features.dispatch && (
<DispatcherButton dispatcherIsOpen={this.props.dispatcherIsOpen} />
)}
2019-01-03 17:14:25 +03:00
</Toolbar>
);
}
}