UNPKG

2.62 kBJavaScriptView Raw
1/**
2 * This is the main file for componentInitializer
3 */
4
5'use strict';
6
7var React = require('react');
8
9module.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};