Skip to content

Instantly share code, notes, and snippets.

@niinpatel
Created July 2, 2018 14:48
Show Gist options
  • Save niinpatel/94c194a50c5f2c395fff87b6cd815e86 to your computer and use it in GitHub Desktop.
Save niinpatel/94c194a50c5f2c395fff87b6cd815e86 to your computer and use it in GitHub Desktop.
import React, { Component } from 'react';
import './App.css';
import ResultComponent from './components/ResultComponent';
import KeyPadComponent from "./components/KeyPadComponent";
class App extends Component {
constructor(){
super();
this.state = {
result: ""
}
}
onClick = button => {
if(button === "="){
this.calculate()
}
else if(button === "C"){
this.reset()
}
else if(button === "CE"){
this.backspace()
}
else {
this.setState({
result: this.state.result + button
})
}
};
calculate = () => {
try {
this.setState({
// eslint-disable-next-line
result: (eval(this.state.result) || "" ) + ""
})
} catch (e) {
this.setState({
result: "error"
})
}
};
reset = () => {
this.setState({
result: ""
})
};
backspace = () => {
this.setState({
result: this.state.result.slice(0, -1)
})
};
render() {
return (
<div>
<div className="calculator-body">
<h1>Simple Calculator</h1>
<ResultComponent result={this.state.result}/>
<KeyPadComponent onClick={this.onClick}/>
</div>
</div>
);
}
}
export default App;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment