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

Commit 42348c4

Browse files
committed
Add preset buttons
Add preset buttons as an example of another way to get data in the state queue. This shows the value of being state-driven instead of promise-driven.
1 parent 7b42441 commit 42348c4

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)