Skip to content

Commit c490018

Browse files
authored
Ignored all default value props (#135)
1 parent 4ebf921 commit c490018

File tree

11 files changed

+112
-4
lines changed

11 files changed

+112
-4
lines changed

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,14 @@ MyForm = reduxForm({
8989
export default MyForm
9090
```
9191

92+
## Quirks
93+
94+
Because of the strict "controlled component" nature of `redux-form`,
95+
some of the Material UI functionality related to defaulting of values has been disabled
96+
e.g. `defaultValue`, `defaultDate`, `defaultTime`, `defaultToggled`, `defaultChecked`, etc.
97+
If you need a field to be initialized to a certain state, you should use the `initialValues`
98+
API of `redux-form`.
99+
92100
## Instance API
93101

94102
#### `getRenderedComponent()`

src/Checkbox.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export default createComponent(Checkbox, ({
55
input: { onChange, value, ...inputProps },
66
meta,
77
onCheck,
8+
defaultChecked,
89
...props
910
}) => ({
1011
...inputProps,

src/DatePicker.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import mapError from './mapError'
44

55
export default createComponent(DatePicker, ({
66
input: { onBlur, ...inputProps },
7+
defaultDate,
78
onChange,
89
...props
910
}) => ({

src/Slider.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import mapError from './mapError'
55
export default createComponent(Slider, ({
66
input: { onDragStart, onChange, ...inputProps },
77
onChange: onChangeFromField,
8+
defaultValue,
89
...props
910
}) => ({
1011
// eslint-disable-line no-unused-vars

src/TimePicker.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import mapError from './mapError'
44

55
export default createComponent(TimePicker, ({
66
input: { onBlur, ...inputProps },
7+
defaultTime,
78
onChange,
89
...props
910
}) => ({

src/Toggle.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import createComponent from './createComponent'
33

44
export default createComponent(Toggle, ({
55
input: { onChange, value, ...inputProps },
6+
defaultToggled,
67
meta,
78
...props
89
}) => ({

src/__tests__/Checkbox.spec.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,24 @@ describe('Checkbox', () => {
5454
)
5555
})
5656

57+
it('should ignore defaultChecked', () => {
58+
expect(
59+
new ReduxFormMaterialUICheckbox({
60+
input: {
61+
name: 'myCheckbox',
62+
onChange: noop
63+
},
64+
defaultChecked: true
65+
}).render()
66+
).toEqualJSX(
67+
<Checkbox
68+
name="myCheckbox"
69+
onCheck={noop}
70+
ref="component"
71+
/>
72+
)
73+
})
74+
5775
it('provides getRenderedComponent', () => {
5876
const dom = TestUtils.renderIntoDocument(
5977
<MuiThemeProvider muiTheme={getMuiTheme()}>

src/__tests__/DatePicker.spec.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,29 @@ describe('DatePicker', () => {
9898
)
9999
})
100100

101+
it('should ignore defaultDate', () => {
102+
const defaultDate = new Date('2016-01-01')
103+
expect(
104+
new ReduxFormMaterialUIDatePicker({
105+
input: {
106+
name: 'myDatePicker'
107+
},
108+
meta: {
109+
warning: 'FooWarning',
110+
touched: true
111+
},
112+
defaultDate
113+
}).render()
114+
).toEqualJSX(
115+
<DatePicker
116+
name="myDatePicker"
117+
errorText="FooWarning"
118+
onChange={noop}
119+
ref="component"
120+
/>
121+
)
122+
})
123+
101124
it('maps onChange properly', () => {
102125
const onChange = createSpy()
103126
const first = new Date('2016-01-01')

src/__tests__/Slider.spec.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,21 @@ describe('Slider', () => {
3131
)
3232
})
3333

34+
it('should ignore defaultValue', () => {
35+
expect(
36+
new ReduxFormMaterialUISlider({
37+
input: {
38+
name: 'mySlider',
39+
value: 0.5,
40+
onDragStart: noop
41+
},
42+
defaultValue: 0.8
43+
}).render()
44+
).toEqualJSX(
45+
<Slider name="mySlider" value={0.5} onChange={noop} ref="component" />
46+
)
47+
})
48+
3449
it('renders a Slider with no error when not touched', () => {
3550
expect(
3651
new ReduxFormMaterialUISlider({

src/__tests__/TimePicker.spec.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,29 @@ describe('TimePicker', () => {
9898
)
9999
})
100100

101+
it('should ignore defaultTime', () => {
102+
const defaultTime = new Date('2016-01-01')
103+
expect(
104+
new ReduxFormMaterialUITimePicker({
105+
input: {
106+
name: 'myTimePicker'
107+
},
108+
meta: {
109+
warning: 'FooWarning',
110+
touched: true
111+
},
112+
defaultTime
113+
}).render()
114+
).toEqualJSX(
115+
<TimePicker
116+
name="myTimePicker"
117+
errorText="FooWarning"
118+
onChange={noop}
119+
ref="component"
120+
/>
121+
)
122+
})
123+
101124
it('maps onChange properly', () => {
102125
const onChange = createSpy()
103126
const first = new Date('August 22, 2016 10:15:00')

0 commit comments

Comments
 (0)