2020-10-26 02:32:04 +03:00
|
|
|
import React, { Component } from 'react';
|
|
|
|
import { connect, ResolveThunks } from 'react-redux';
|
2021-09-18 17:00:58 +03:00
|
|
|
import { Tabs } from '@redux-devtools/ui';
|
2020-10-26 02:32:04 +03:00
|
|
|
import { monitors } from '../utils/getMonitor';
|
|
|
|
import { selectMonitor } from '../actions';
|
|
|
|
import { StoreState } from '../reducers';
|
|
|
|
|
|
|
|
type StateProps = ReturnType<typeof mapStateToProps>;
|
|
|
|
type DispatchProps = ResolveThunks<typeof actionCreators>;
|
|
|
|
type Props = StateProps & DispatchProps;
|
|
|
|
|
|
|
|
class MonitorSelector extends Component<Props> {
|
|
|
|
shouldComponentUpdate(nextProps: Props) {
|
|
|
|
return nextProps.selected !== this.props.selected;
|
|
|
|
}
|
|
|
|
|
|
|
|
render() {
|
|
|
|
return (
|
|
|
|
<Tabs
|
|
|
|
main
|
|
|
|
collapsible
|
|
|
|
position="center"
|
|
|
|
tabs={monitors}
|
|
|
|
onClick={this.props.selectMonitor}
|
|
|
|
selected={this.props.selected || 'InspectorMonitor'}
|
|
|
|
/>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
const mapStateToProps = (state: StoreState) => ({
|
|
|
|
selected: state.monitor.selected,
|
|
|
|
});
|
|
|
|
|
|
|
|
const actionCreators = {
|
|
|
|
selectMonitor,
|
|
|
|
};
|
|
|
|
|
|
|
|
export default connect(mapStateToProps, actionCreators)(MonitorSelector);
|