diff --git a/src/lib/renderer.jsx b/src/lib/renderer.jsx
new file mode 100644
index 000000000..ec3209ef4
--- /dev/null
+++ b/src/lib/renderer.jsx
@@ -0,0 +1,13 @@
+var React = require('react');
+
+var Renderer = {
+ render: function (jsx, toElement) {
+ var rendered = React.render(jsx, toElement);
+ if (process.env.NODE_ENV != 'production') {
+ window.renderedComponents = window.renderedComponents || [];
+ window.renderedComponents.push(rendered);
+ }
+ }
+};
+
+module.exports = Renderer;
diff --git a/src/main.jsx b/src/main.jsx
index 2dee945fe..8372f839a 100644
--- a/src/main.jsx
+++ b/src/main.jsx
@@ -1,15 +1,9 @@
-var React = require('react');
+var Renderer = require('./lib/renderer.jsx');
require('./main.scss');
var Navigation = require('./components/navigation/navigation.jsx');
var Footer = require('./components/footer/footer.jsx');
-var renderedNavigation = React.render(, document.getElementById('navigation'));
-var renderedFooter = React.render(, document.getElementById('footer'));
-
-if (process.env.NODE_ENV != 'production') {
- window.renderedComponents = window.renderedComponents || [];
- window.renderedComponents.push(renderedNavigation);
- window.renderedComponents.push(renderedFooter);
-}
+Renderer.render(, document.getElementById('navigation'));
+Renderer.render(, document.getElementById('footer'));
diff --git a/src/views/about/about.jsx b/src/views/about/about.jsx
index 5388011d6..47f7289e7 100644
--- a/src/views/about/about.jsx
+++ b/src/views/about/about.jsx
@@ -1,4 +1,5 @@
var React = require('react');
+var Renderer = require('../../lib/renderer.jsx');
require('./about.scss');
@@ -13,9 +14,4 @@ var About = React.createClass({
}
});
-var renderedView = React.render(, document.getElementById('view'));
-
-if (process.env.NODE_ENV != 'production') {
- window.renderedComponents = window.renderedComponents || [];
- window.renderedComponents.push(renderedView);
-}
+Renderer.render(, document.getElementById('view'));
diff --git a/src/views/components/components.jsx b/src/views/components/components.jsx
index 9bf9e6982..63c3b8554 100644
--- a/src/views/components/components.jsx
+++ b/src/views/components/components.jsx
@@ -1,4 +1,5 @@
var React = require('react');
+var Renderer = require('../../lib/renderer.jsx');
var Box = require('../../components/box/box.jsx');
var Button = require('../../components/forms/button.jsx');
@@ -36,9 +37,4 @@ var Components = React.createClass({
}
});
-var renderedView = React.render(, document.getElementById('view'));
-
-if (process.env.NODE_ENV != 'production') {
- window.renderedComponents = window.renderedComponents || [];
- window.renderedComponents.push(renderedView);
-}
+Renderer.render(, document.getElementById('view'));
diff --git a/src/views/hoc/hoc.jsx b/src/views/hoc/hoc.jsx
index 81eb47a0a..a1a7f6ba4 100644
--- a/src/views/hoc/hoc.jsx
+++ b/src/views/hoc/hoc.jsx
@@ -1,4 +1,5 @@
var React = require('react');
+var Renderer = require('../../lib/renderer.jsx');
require('./hoc.scss');
@@ -104,9 +105,4 @@ var Hoc = React.createClass({
}
});
-var renderedView = React.render(, document.getElementById('view'));
-
-if (process.env.NODE_ENV != 'production') {
- window.renderedComponents = window.renderedComponents || [];
- window.renderedComponents.push(renderedView);
-}
+Renderer.render(, document.getElementById('view'));
diff --git a/src/views/splash/splash.jsx b/src/views/splash/splash.jsx
index 9738d3db9..09aeafe6a 100644
--- a/src/views/splash/splash.jsx
+++ b/src/views/splash/splash.jsx
@@ -1,4 +1,5 @@
var React = require('react');
+var Renderer = require('../../lib/renderer.jsx');
var Api = require('../../mixins/api.jsx');
var Session = require('../../mixins/session.jsx');
@@ -72,9 +73,4 @@ var Splash = React.createClass({
}
});
-var renderedView = React.render(, document.getElementById('view'));
-
-if (process.env.NODE_ENV != 'production') {
- window.renderedComponents = window.renderedComponents || [];
- window.renderedComponents.push(renderedView);
-}
+Renderer.render(, document.getElementById('view'));