@@ -25,14 +25,15 @@ function replaceInputs(element, model) {
25
25
item . items ?. forEach ( processItem ) ;
26
26
return ;
27
27
}
28
+ const { fieldType, id } = item ;
28
29
29
- if ( ! item . value || ! item . id ) return ;
30
-
31
- // Remove empty fields
32
- element . querySelector ( `[data-id=" ${ item . id } "]` ) ?. remove ( ) ;
30
+ if ( fieldType === 'button' ) {
31
+ element . querySelector ( `[data-id=" ${ id } "]` ) ?. remove ( ) ;
32
+ return ;
33
+ }
33
34
35
+ if ( ! item . value || ! item . id ) return ;
34
36
const divElement = createReviewFieldElement ( item ) ;
35
- const { fieldType, id } = item ;
36
37
37
38
if ( fieldType === 'radio-group' || fieldType === 'checkbox-group' ) {
38
39
const group = element . querySelector ( `fieldset[data-id="${ id } "]` ) ;
@@ -58,12 +59,13 @@ function replaceInputs(element, model) {
58
59
}
59
60
60
61
function render ( element , fd , model ) {
61
- if ( element . hasAttribute ( 'data-rendered' ) ) return ;
62
+ element . innerHTML = '' ;
63
+ if ( ! model ) return ;
62
64
63
65
const { form } = model ;
64
66
const { properties } = fd ;
65
67
66
- if ( ! properties ?. panelNames || ! form ) return ;
68
+ if ( ! properties ?. panelNames ) return ;
67
69
68
70
const panelModels = [ ] ;
69
71
form . visit ( ( field ) => {
@@ -73,7 +75,7 @@ function render(element, fd, model) {
73
75
} ) ;
74
76
75
77
panelModels . forEach ( async ( field ) => {
76
- if ( ! field . isContainer && ! field . value ) return ;
78
+ if ( ! field . isContainer ) return ;
77
79
78
80
const panelWrapper = document . createElement ( 'div' ) ;
79
81
panelWrapper . className = `review-panel-wrapper ${ field . name } ` ;
@@ -83,7 +85,7 @@ function render(element, fd, model) {
83
85
84
86
if ( ! decoratedPanel ) return ;
85
87
86
- element . setAttribute ( 'data-rendered' , 'true' ) ;
88
+ element . appendChild ( panelWrapper ) ;
87
89
} ) ;
88
90
}
89
91
0 commit comments