Skip to content
This repository was archived by the owner on Aug 23, 2022. It is now read-only.

Commit 718270a

Browse files
committed
Fixing erroneous div component for LocalForm and passing of invalid proptypes
1 parent 096b2bb commit 718270a

File tree

3 files changed

+22
-60
lines changed

3 files changed

+22
-60
lines changed

examples/quick-start/app.js

Lines changed: 12 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,22 @@
1-
import React, { Component, PropTypes } from 'react';
1+
import React from 'react';
22
import ReactDOM from 'react-dom';
3-
import {
4-
createStore,
5-
combineReducers,
6-
applyMiddleware
7-
} from 'redux';
8-
import { connect, Provider } from 'react-redux';
9-
import {
10-
Form,
11-
Control,
12-
Errors,
13-
actions,
14-
combineForms,
15-
} from 'react-redux-form';
16-
import thunk from 'redux-thunk';
17-
import createLogger from 'redux-logger';
18-
// import isEmpty from 'validator/lib/isEmpty';
193

20-
const store = createStore(combineForms({
21-
user: {
22-
name1: '',
23-
name2: '',
24-
},
25-
}), applyMiddleware(thunk, createLogger()));
4+
import { Provider } from 'react-redux';
265

27-
const isRequired = value => !!value && value.length;
28-
const namesNotEqual = ({name1, name2}) => {
29-
console.log("namesNotEqual(): Name1: %s, Name2: %s", name1, name2);
30-
return name1 !== name2;
31-
};
6+
// We'll create this in Step 5.
7+
import store from './store.js';
328

33-
class App extends Component {
34-
handleSubmit(vals) {
35-
console.log("handleSubmit(): %O", vals);
36-
}
37-
9+
// We'll create this in Step 6.
10+
import UserForm from './components/user-form.js';
11+
12+
class App extends React.Component {
3813
render() {
3914
return (
40-
<Form
41-
model="user"
42-
onSubmit={(vals) => this.handleSubmit(vals)}
43-
validators={{'': {namesNotEqual}}}
44-
>
45-
<Errors show={true} model="user" messages={{namesNotEqual: "No equal names allowed!"}} />
46-
<br />
47-
48-
<label>Name1:</label>
49-
<Control.text model=".name1" validators={{isRequired}} />
50-
<Errors show={true} model=".name1" messages={{isRequired: "Please enter a name!"}}/>
51-
<br />
52-
53-
<label>Name2:</label>
54-
<Control.text model=".name2" validators={{isRequired}} />
55-
<Errors show={true} model=".name2" messages={{isRequired: "Please enter a name!"}}/>
56-
<br />
57-
58-
<button>Submit!</button>
59-
</Form>
15+
<Provider store={store}>
16+
<UserForm />
17+
</Provider>
6018
);
6119
}
6220
}
6321

64-
ReactDOM.render(
65-
<Provider store={store}>
66-
<App />
67-
</Provider>
68-
, document.querySelector('#app'));
22+
ReactDOM.render(<App />, document.getElementById('app'));

src/components/control-component.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ const findDOMNode = !isNative
3030
? require('react-dom').findDOMNode
3131
: null;
3232

33-
const disallowedProps = ['changeAction', 'getFieldFromState'];
33+
const disallowedProps = ['changeAction', 'getFieldFromState', 'store'];
3434

3535
function getReadOnlyValue(props) {
3636
const { modelValue, controlProps } = props;
@@ -96,6 +96,11 @@ const propTypes = {
9696
PropTypes.string,
9797
]),
9898
dynamic: PropTypes.bool,
99+
store: PropTypes.shape({
100+
subscribe: PropTypes.func,
101+
dispatch: PropTypes.func,
102+
getState: PropTypes.func,
103+
}),
99104
};
100105

101106
const defaultStrategy = {

src/components/local-form-component.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React, { PropTypes } from 'react';
22
import Form from './form-component';
33
import combineForms from '../reducers/forms-reducer';
44
import { createStore } from 'redux';
5+
import omit from 'lodash/omit';
56

67
class LocalForm extends React.Component {
78
constructor(props) {
@@ -13,8 +14,10 @@ class LocalForm extends React.Component {
1314
}
1415

1516
render() {
17+
const allowedProps = omit(this.props, ['store', 'initialState']);
18+
1619
return (
17-
<Form store={this.store} {...this.props} component="div" />
20+
<Form store={this.store} {...allowedProps} />
1821
);
1922
}
2023
}

0 commit comments

Comments
 (0)