import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { ActionCreators } from 'redux-devtools-instrument'; import { Button, Toolbar, Divider } from 'devui'; import RecordButton from './buttons/RecordButton'; import PersistButton from './buttons/PersistButton'; import LockButton from './buttons/LockButton'; import InstanceSelector from './InstanceSelector'; import SyncButton from './buttons/SyncButton'; const { reset, rollback, commit, sweep } = ActionCreators; export default class TopButtons extends Component { static propTypes = { // shouldSync: PropTypes.bool, liftedState: PropTypes.object.isRequired, dispatch: PropTypes.func.isRequired, options: PropTypes.object.isRequired }; shouldComponentUpdate(nextProps) { return nextProps.options !== this.props.options || nextProps.liftedState !== this.props.liftedState; } handleRollback = () => { this.props.dispatch(rollback()); }; handleSweep = () => { this.props.dispatch(sweep()); }; handleCommit = () => { this.props.dispatch(commit()); }; handleReset = () => { this.props.dispatch(reset()); }; render() { const options = this.props.options; const features = options.features; const { computedStates, skippedActionIds, isPaused, isLocked } = this.props.liftedState; const noStates = computedStates.length < 2; return ( {features.pause && } {features.persist && } {features.lock && } {features.sync && } ); } }