import React, { Component } from "react"; import { connect } from "react-redux"; import { RemoteService } from "../../remote"; import Device from "./devices/Device"; import NewSceneDevice from "./NewSceneDevice"; import { Button, Card, Segment, Header, Icon } from "semantic-ui-react"; 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) => { return ; }) : null}
); } } const mapStateToProps = (state, _) => ({ get sceneStates() { if (state.active.activeScene !== -1) { const stateArray = [ ...state.scenes[state.active.activeScene].sceneStates, ].sort(); return stateArray.map((id) => state.sceneStates[id]); } else { return []; } }, get isActiveDefaultScene() { return state.active.activeScene === -1; }, activeScene: state.active.activeScene, }); const ScenesPanelContainer = connect( mapStateToProps, RemoteService )(ScenesPanel); export default ScenesPanelContainer;