UNPKG

2.77 kBJavaScriptView Raw
1/**
2 * This is the main file for componentInitializer
3 */
4
5 var React = require( 'react' );
6
7
8module.exports = function( pageComponents, templateComponents ){
9
10
11 /*
12 * Loop over each component on the page
13 */
14
15 for( var i in pageComponents.components ) {
16
17 var component = pageComponents.components[ i ];
18
19 /*
20 * Loop over each component included in the template and
21 * render it if its a react component, or initilize it if
22 * its not
23 */
24
25 for( var templateComponentName in templateComponents ){
26
27 var templateComponent = templateComponents[ templateComponentName ];
28
29 /**
30 * Check to see if the component matches one included
31 * in the template
32 */
33
34 if( component.name === templateComponentName ){
35
36 /*
37 * check to see if the component is a react component
38 */
39
40 if( templateComponent.reactComponent ){
41
42 /**
43 * loop over each instance of the component found on
44 * the page and initilize it
45 */
46 for ( let instanceIndex = 0; instanceIndex < component.instances.length; instanceIndex++ ){
47
48 let instance = component.instances[ instanceIndex ];
49
50 for (var z = 0; z < instance.data.length; z++) {
51 var data = instance.data[z];
52
53 React.render(
54 <templateComponent.component
55 config={instance.config}
56 data={data} />,
57 document.querySelector('[data-hook="' + data.hook + '"]')
58 );
59 }
60
61 }
62
63 } else {
64
65 /**
66 * loop over each instance of the component found on
67 * the page and initilize it
68 */
69 for ( let instanceIndex = 0; instanceIndex < component.instances.length; instanceIndex++ ){
70
71 let instance = component.instances[ instanceIndex ];
72
73 for (var z = 0; z < instance.data.length; z++) {
74
75 var data = instance.data[z];
76
77 templateComponent.init(
78 {
79 config : instance.config,
80 data: data
81 }
82 );
83
84 }
85
86 }
87
88 }
89
90 }
91
92
93 }
94 }
95
96
97};