import React, { Component } from 'react'; import { connect } from 'react-redux'; import { Button, Card, Segment, Header, Icon, } from 'semantic-ui-react'; import { RemoteService } from '../../remote'; import Device from './devices/Device'; import NewSceneDevice from './NewSceneDevice'; class ScenesPanel extends Component { constructor(props) { super(props); this.applyScene = this.applyScene.bind(this); } applyScene() { this.props .sceneApply(this.props.activeScene) .then(() => { alert('Scene applied.'); }) .catch(console.error); } render() { return ( {!this.props.isActiveDefaultScene ? (
Add devices - Apply Scene
) : (
Please select a scene on the left or add a new one.
)} {!this.props.isActiveDefaultScene ? this.props.sceneStates.map((e, i) => ) : null}
); } } const mapStateToProps = (state, _) => ({ get sceneStates() { if (state.active.activeScene !== -1) { const stateArray = [ ...state.scenes[state.active.activeScene].sceneStates, ].sort(); console.log(state.scenes[state.active.activeScene]); return stateArray.map((id) => state.sceneStates[id]); } return []; }, get isActiveDefaultScene() { return state.active.activeScene === -1; }, activeScene: state.active.activeScene, }); const ScenesPanelContainer = connect( mapStateToProps, RemoteService, )(ScenesPanel); export default ScenesPanelContainer;