// Copyright 2015-2017 Parity Technologies (UK) Ltd. // This file is part of Parity. // Parity is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // Parity is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with Parity. If not, see . import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import { toggleView } from '@parity/shared/redux/providers/settings/actions'; import { Checkbox, Container } from '@parity/ui'; import layout from '../layout.css'; import styles from './views.css'; class Views extends Component { static propTypes = { settings: PropTypes.object.isRequired, toggleView: PropTypes.func.isRequired, availability: PropTypes.string.isRequired } render () { return ( } >
{ this.renderView('apps', , ) }
); } renderViews () { const { settings } = this.props; return Object.keys(settings.views).map((id) => { const description = ; const label = ; this.renderView(id, label, description); }); } renderView = (id, label, description) => { const { settings, toggleView } = this.props; const toggle = () => toggleView(id); const view = settings.views[id]; if (view.onlyPersonal && this.props.availability !== 'personal') { return null; } return (
{ view.icon }
{ label }
} onClick={ toggle } checked={ view.active } value={ view.active } />
{ description }
); } } function mapStateToProps (state) { const { settings } = state; const { availability = 'unknown' } = state.nodeStatus.nodeKind || {}; return { settings, availability }; } function mapDispatchToProps (dispatch) { return bindActionCreators({ toggleView }, dispatch); } export default connect( mapStateToProps, mapDispatchToProps )(Views);