1 | /**
|
2 | * This is the main file for componentInitializer
|
3 | */
|
4 |
|
5 | ;
|
6 |
|
7 | var React = require('react');
|
8 |
|
9 | module.exports = function (pageComponents, templateComponents) {
|
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 (var instanceIndex = 0; instanceIndex < component.instances.length; instanceIndex++) {
|
47 |
|
48 | var instance = component.instances[instanceIndex];
|
49 |
|
50 | for (var z = 0; z < instance.data.length; z++) {
|
51 | var data = instanceData.data[z];
|
52 |
|
53 | React.render(React.createElement(templateComponent.component, {
|
54 | config: instance.config,
|
55 | data: data }), document.querySelector('[data-hook="' + instanceData.hook + '"]'));
|
56 | }
|
57 | }
|
58 | } else {
|
59 |
|
60 | /**
|
61 | * loop over each instance of the component found on
|
62 | * the page and initilize it
|
63 | */
|
64 | for (var instanceIndex = 0; instanceIndex < component.instances.length; instanceIndex++) {
|
65 |
|
66 | var instance = component.instances[instanceIndex];
|
67 |
|
68 | for (var z = 0; z < instance.data.length; z++) {
|
69 |
|
70 | var data = instanceData.data[z];
|
71 |
|
72 | templateComponent.init({
|
73 | config: instance.config,
|
74 | data: data
|
75 | });
|
76 | }
|
77 | }
|
78 | }
|
79 | }
|
80 | }
|
81 | }
|
82 | };
|