Toggle icon locally with on / off buttons

master
Tanner Collin 7 years ago
parent 6a27604e75
commit 23d10df83a
  1. 2
      .babelrc
  2. 1
      package.json
  3. 30
      src/app.js

@ -1,4 +1,4 @@
{ {
"presets": ["react"], "presets": ["react"],
"plugins": ["react-hot-loader/babel"] "plugins": ["transform-object-rest-spread", "react-hot-loader/babel"]
} }

@ -12,6 +12,7 @@
"devDependencies": { "devDependencies": {
"babel-core": "^6.25.0", "babel-core": "^6.25.0",
"babel-loader": "^7.0.0", "babel-loader": "^7.0.0",
"babel-plugin-transform-object-rest-spread": "^6.23.0",
"babel-preset-react": "^6.24.1", "babel-preset-react": "^6.24.1",
"react-hot-loader": "^3.0.0-beta.6", "react-hot-loader": "^3.0.0-beta.6",
"webpack": "^3.0.0", "webpack": "^3.0.0",

@ -1,6 +1,25 @@
import React from 'react'; import React from 'react';
export default class Site extends React.Component { export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {
ioState: {
dout: [false],
},
}
}
doutSet(pin, value) {
this.setState({
ioState: {
...this.state.ioState,
dout: this.state.ioState.dout.map((x, i) => i == pin ? value : x),
},
});
}
render() { render() {
return ( return (
<div className="ui text container"> <div className="ui text container">
@ -16,18 +35,19 @@ export default class Site extends React.Component {
<div className="column"> <div className="column">
<div className="ui segment"> <div className="ui segment">
<div className="ui top attached label">Digital Out</div> <div className="ui top attached label">Digital Out</div>
<div className="ui two column grid"> <div className="ui two column middle aligned grid">
<div className="twelve wide column"> <div className="twelve wide column">
<div className="ui right pointing label"> <div className="ui right pointing label">
DO1 DO1
</div> </div>
<div className="ui buttons"> <div className="ui buttons">
<button className="ui red button">On</button> <button onClick={() => this.doutSet(0, true)} className="ui red button">On</button>
<button className="ui button">Off</button> <button onClick={() => this.doutSet(0, false)} className="ui button">Off</button>
</div> </div>
</div> </div>
<div className="four wide right aligned column"> <div className="four wide right aligned column">
<i className="red idea big icon"></i> {!this.state.ioState.dout[0] && <i className="bordered inverted disabled idea big icon"></i>}
{this.state.ioState.dout[0] && <i className="bordered inverted red idea big icon"></i>}
</div> </div>
</div> </div>
</div> </div>

Loading…
Cancel
Save