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

Commit 4e8baf1

Browse files
committed
Allowing mapProps to work normally (extending default mapProps) for <Control>. Fixes #653
1 parent ebf4b0d commit 4e8baf1

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

src/components/control-component.js

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -660,7 +660,17 @@ function createControlClass(customControlPropsMap = {}, s = defaultStrategy) {
660660
const ConnectedControl = resolveModel(connect(mapStateToProps)(Control));
661661

662662
/* eslint-disable react/prop-types */
663-
ConnectedControl.input = (props) => (
663+
const DefaultConnectedControl = (props) => (
664+
<ConnectedControl
665+
mapProps={{
666+
...controlPropsMap.default,
667+
...props.mapProps,
668+
}}
669+
{...omit(props, 'mapProps')}
670+
/>
671+
);
672+
673+
DefaultConnectedControl.input = (props) => (
664674
<ConnectedControl
665675
component="input"
666676
mapProps={{
@@ -671,7 +681,7 @@ function createControlClass(customControlPropsMap = {}, s = defaultStrategy) {
671681
/>
672682
);
673683

674-
ConnectedControl.text = (props) => (
684+
DefaultConnectedControl.text = (props) => (
675685
<ConnectedControl
676686
component="input"
677687
mapProps={{
@@ -683,7 +693,7 @@ function createControlClass(customControlPropsMap = {}, s = defaultStrategy) {
683693
/>
684694
);
685695

686-
ConnectedControl.textarea = (props) => (
696+
DefaultConnectedControl.textarea = (props) => (
687697
<ConnectedControl
688698
component="textarea"
689699
mapProps={{
@@ -694,7 +704,7 @@ function createControlClass(customControlPropsMap = {}, s = defaultStrategy) {
694704
/>
695705
);
696706

697-
ConnectedControl.radio = (props) => (
707+
DefaultConnectedControl.radio = (props) => (
698708
<ConnectedControl
699709
component="input"
700710
type="radio"
@@ -706,7 +716,7 @@ function createControlClass(customControlPropsMap = {}, s = defaultStrategy) {
706716
/>
707717
);
708718

709-
ConnectedControl.checkbox = (props) => (
719+
DefaultConnectedControl.checkbox = (props) => (
710720
<ConnectedControl
711721
component="input"
712722
type="checkbox"
@@ -719,7 +729,7 @@ function createControlClass(customControlPropsMap = {}, s = defaultStrategy) {
719729
/>
720730
);
721731

722-
ConnectedControl.file = (props) => (
732+
DefaultConnectedControl.file = (props) => (
723733
<ConnectedControl
724734
component="input"
725735
type="file"
@@ -731,7 +741,7 @@ function createControlClass(customControlPropsMap = {}, s = defaultStrategy) {
731741
/>
732742
);
733743

734-
ConnectedControl.select = (props) => (
744+
DefaultConnectedControl.select = (props) => (
735745
<ConnectedControl
736746
component="select"
737747
mapProps={{
@@ -742,7 +752,7 @@ function createControlClass(customControlPropsMap = {}, s = defaultStrategy) {
742752
/>
743753
);
744754

745-
ConnectedControl.button = (props) => (
755+
DefaultConnectedControl.button = (props) => (
746756
<ConnectedControl
747757
component="button"
748758
mapProps={{
@@ -753,7 +763,7 @@ function createControlClass(customControlPropsMap = {}, s = defaultStrategy) {
753763
/>
754764
);
755765

756-
ConnectedControl.reset = (props) => (
766+
DefaultConnectedControl.reset = (props) => (
757767
<ConnectedControl
758768
component="button"
759769
type="reset"
@@ -765,7 +775,7 @@ function createControlClass(customControlPropsMap = {}, s = defaultStrategy) {
765775
/>
766776
);
767777

768-
return ConnectedControl;
778+
return DefaultConnectedControl;
769779
}
770780

771781
export {

0 commit comments

Comments
 (0)