Skip to content

Instantly share code, notes, and snippets.

View interaminense's full-sized avatar
🖐️
Hi there!

Adriano Interaminense interaminense

🖐️
Hi there!
View GitHub Profile
@interaminense
interaminense / mathematics-export-components.js
Created February 28, 2018 04:14
Mathematics Export Components
import Button from './Button';
export { Button };
@interaminense
interaminense / mathematics-app.js
Last active February 28, 2018 03:13
Mathematics App
import Component from 'metal-jsx';
import Mathematics from './components/Mathematics';
class App extends Component {
render() {
const {lvlDefault, lvls, showResult, countdown} = this.state;
return (
<Mathematics
countdown={30}
@interaminense
interaminense / mathematics-render-finish-game.js
Created February 28, 2018 01:36
Mathematics RenderFinishGame
/**
* Render UI finish game
*/
renderFinishGame() {
const {hits, errors} = this.state;
return (
<Layout>
<Layout.Header>{LANGUAGE.finishGame}</Layout.Header>
@interaminense
interaminense / mathematics-handleclickvalidateexpression.js
Created February 27, 2018 03:19
Mathematics handleClickValidateExpression
/**
* Handle click to validate expression
* @param {object} event
*/
_handleClickValidateExpression(event) {
event.preventDefault();
if (event.target.result.value === '') return;
let value = event.target.result.value;
@interaminense
interaminense / mathematics-handleclickbutton.js
Created February 27, 2018 03:15
Mathematics handleClickButton
/**
* Handle click on buttons inside forms
* @param {*} event
*/
_handleClickButton(event) {
// If button is a submit type, return
if (event.target.type !== 'button') {
return;
}
@interaminense
interaminense / mathematics-setnextoperation.js
Created February 27, 2018 02:28
Mathematics setNextOperation
setNextOperation() {
let n1 = getRandomNumber(0, this.state.lvl.maxNumber);
let n2 = getRandomNumber(0, this.state.lvl.maxNumber);
let operator = this.getRandomOperator();
let result = CALCULATE(n1, n2, operator);
// If isn't real number, set the next operation
if (isNaN(result) || !isFinite(result)) {
this.setNextOperation();
} else {
@interaminense
interaminense / mathematics-render-start-game.js
Created February 27, 2018 01:39
Mathematics RenderStartGame
/**
* Render UI start game
*/
renderStartGame() {
const {
state: {lvl, n1, n2, operator, message, errors, hits, countdown},
props: {showResult}
} = this;
const result = CALCULATE(n1, n2, operator);
@interaminense
interaminense / mathematics-render-init-game.js
Created February 26, 2018 02:58
Mathematics RenderInitGame
/**
* Render UI init game
*/
renderInitGame() {
return (
<Layout>
<Layout.Header>{LANGUAGE.initGame}</Layout.Header>
<Layout.Body>
{this.renderUIButtons()}
@interaminense
interaminense / mathematics-lifecycle-render.js
Created February 26, 2018 02:33
Mathematics Lifecycle Render
render() {
const {start, finish, init, lvl} = this.state;
return (
<div class={`mathematics mathematics--lvl-${lvl.internalLabel}`}>
<div class={'mathematics__body'}>
{init && (
<div class={'mathematics__init'}>
{this.renderInitGame()}
@interaminense
interaminense / mathematics-props-state.js
Created February 26, 2018 02:06
Mathematics Props and States
Mathematics.PROPS = {
/**
* @type {number}
* @default 30
*/
countdown: Config.number().value(30),
/**
* @type {string}
* @default undefined