@@ -7,24 +7,39 @@ import Condition from './condition';
7
7
import { memoize } from '../validators/helpers' ;
8
8
import FieldWrapper from './field-wrapper' ;
9
9
10
+ const FormFieldHideWrapper = ( { hideField, children } ) => hideField ? (
11
+ < div hidden > { children } </ div >
12
+ ) : children ;
13
+
14
+ FormFieldHideWrapper . propTypes = {
15
+ hideField : PropTypes . bool ,
16
+ children : PropTypes . oneOfType ( [ PropTypes . node , PropTypes . arrayOf ( PropTypes . node ) ] ) . isRequired ,
17
+ } ;
18
+
19
+ FormFieldHideWrapper . defaultProps = {
20
+ hideField : false ,
21
+ } ;
22
+
10
23
const FormConditionWrapper = ( { condition, children } ) => ( condition ? (
11
24
< Condition { ...condition } >
12
25
{ children }
13
26
</ Condition >
14
27
) : children ) ;
15
28
16
- const renderSingleField = ( { component, condition, ...rest } ) => (
29
+ const renderSingleField = ( { component, condition, hideField , ...rest } ) => (
17
30
< Fragment key = { rest . key || rest . name } >
18
31
< RendererContext . Consumer >
19
32
{ ( { formFieldsMapper, formOptions } ) => (
20
33
< FormConditionWrapper condition = { condition } >
21
- < FieldWrapper
22
- componentType = { component }
23
- component = { formFieldsMapper [ component ] }
24
- formOptions = { formOptions }
25
- name = { rest . name || rest . key }
26
- { ...rest }
27
- />
34
+ < FormFieldHideWrapper hideField = { hideField } >
35
+ < FieldWrapper
36
+ componentType = { component }
37
+ component = { formFieldsMapper [ component ] }
38
+ formOptions = { formOptions }
39
+ name = { rest . name || rest . key }
40
+ { ...rest }
41
+ />
42
+ </ FormFieldHideWrapper >
28
43
</ FormConditionWrapper >
29
44
) }
30
45
</ RendererContext . Consumer >
0 commit comments