import React, { Component } from 'react'; import { connect, ResolveThunks } from 'react-redux'; import { Container, Notification } from '@redux-devtools/ui'; import { clearNotification } from '../actions'; import Header from '../components/Header'; import Actions from './Actions'; import Settings from '../components/Settings'; import { CoreStoreState } from '../reducers'; type StateProps = ReturnType; type DispatchProps = ResolveThunks; type OwnProps = { extraSettingsTabs?: { name: string; component: React.ComponentType }[]; }; type Props = StateProps & DispatchProps & OwnProps; class App extends Component { render() { const { extraSettingsTabs, section, theme, notification } = this.props; let body; switch (section) { case 'Settings': body = ; break; default: body = ; } return (
{body} {notification && ( {notification.message} )} ); } } const mapStateToProps = (state: CoreStoreState) => ({ section: state.section, theme: state.theme, notification: state.notification, }); const actionCreators = { clearNotification, }; export default connect(mapStateToProps, actionCreators)(App);