Skip to content
This repository was archived by the owner on Feb 11, 2021. It is now read-only.

Commit 87cf40f

Browse files
committed
Merge pull request #2 from coderkevin/big-prime-presets
Add preset buttons
2 parents 7b42441 + 42348c4 commit 87cf40f

File tree

3 files changed

+37
-2
lines changed

3 files changed

+37
-2
lines changed

examples/simple/components/Preset.jsx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import React, { Component, PropTypes } from 'react';
2+
3+
export default class Preset extends Component {
4+
render() {
5+
const { value, onClick } = this.props;
6+
7+
return (
8+
<button onClick={ onClick }>{ value }</button>
9+
);
10+
}
11+
}
12+
13+
Preset.propTypes = {
14+
value: PropTypes.string.isRequired,
15+
onClick: PropTypes.func.isRequired
16+
}
17+

examples/simple/containers/App.jsx

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React, { Component, PropTypes } from 'react';
22
import { connect } from 'react-redux';
33
import NumberPicker from '../components/NumberPicker';
4+
import Preset from '../components/Preset';
45
import NumberList from '../components/NumberList';
56
import WorkingMessage from '../components/WorkingMessage';
67
import { setNumberEntry } from '../actions/numberentry';
@@ -11,6 +12,7 @@ class App extends Component {
1112
super( props );
1213
this.handleNumberEntryChange = this.handleNumberEntryChange.bind( this );
1314
this.handleNumberEntrySubmit = this.handleNumberEntrySubmit.bind( this );
15+
this.handlePresetClick = this.handlePresetClick.bind( this );
1416
}
1517

1618
handleNumberEntryChange( e ) {
@@ -25,9 +27,13 @@ class App extends Component {
2527
this.props.dispatch( addQueueNumber( numberEntry ) );
2628
}
2729

30+
handlePresetClick( preset ) {
31+
this.props.dispatch( addQueueNumber( preset ) );
32+
}
33+
2834
render() {
2935
const submitText = "Add Number";
30-
const { numberEntry, primes, nonPrimes, queue } = this.props;
36+
const { numberEntry, presets, primes, nonPrimes, queue } = this.props;
3137
let workMessage = <span> &nbsp; </span>;
3238

3339
if ( queue.length > 0 ) {
@@ -42,6 +48,15 @@ class App extends Component {
4248
onChange={ this.handleNumberEntryChange }
4349
onSubmit={ this.handleNumberEntrySubmit } />
4450

51+
<div>
52+
Presets:
53+
{
54+
presets.map( ( preset ) => {
55+
return <Preset key={ preset } value={ preset } onClick={ ( e ) => { this.handlePresetClick( preset ); } } />;
56+
} )
57+
}
58+
</div>
59+
4560
<em>{ workMessage }</em>
4661

4762
<h2>Primes</h2>
@@ -55,6 +70,7 @@ class App extends Component {
5570

5671
App.propTypes = {
5772
numberEntry: PropTypes.string.isRequired,
73+
presets: PropTypes.array.isRequired,
5874
primes: PropTypes.array.isRequired,
5975
nonPrimes: PropTypes.array.isRequired,
6076
queue: PropTypes.array.isRequired,
@@ -63,10 +79,11 @@ App.propTypes = {
6379

6480
function mapStateToProps( state ) {
6581
const { numberEntry, primeState } = state;
66-
const { primes, nonPrimes, queue } = primeState;
82+
const { presets, primes, nonPrimes, queue } = primeState;
6783

6884
return {
6985
numberEntry,
86+
presets,
7087
primes,
7188
nonPrimes,
7289
queue

examples/simple/reducers/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ function isNormalInteger( str ) {
2828
}
2929

3030
const primesInitialState = {
31+
presets: [ '179426447', '179430203', '1299912', '179621987', '677' ],
3132
primes: [],
3233
nonPrimes: [],
3334
queue: []

0 commit comments

Comments
 (0)