Load all components* through a central broker so we can overrride them with different ones
* only one place actually uses it currently
This commit is contained in:
parent
acaff68748
commit
c9a546b73b
2 changed files with 47 additions and 4 deletions
40
src/ComponentBroker.js
Normal file
40
src/ComponentBroker.js
Normal file
|
@ -0,0 +1,40 @@
|
|||
var components = {};
|
||||
|
||||
function load(name) {
|
||||
var types = [
|
||||
'atoms',
|
||||
'molecules',
|
||||
'organisms',
|
||||
'templates',
|
||||
'pages'
|
||||
];
|
||||
var ex = null;
|
||||
for (var i = 0; i < types.length; ++i) {
|
||||
try {
|
||||
var module = require("./"+types[i]+"/"+name);
|
||||
components[name] = module;
|
||||
return module;
|
||||
} catch (err) {
|
||||
ex = err;
|
||||
}
|
||||
}
|
||||
throw ex;
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
get: function(name) {
|
||||
if (components[name]) return components[name];
|
||||
|
||||
components[name] = load(name);
|
||||
return components[name];
|
||||
},
|
||||
|
||||
set: function(name, module) {
|
||||
components[name] = module;
|
||||
}
|
||||
};
|
||||
|
||||
require('./organisms/RoomList');
|
||||
require('./organisms/RoomView');
|
||||
require('./molecules/MatrixToolbar');
|
||||
require('./templates/Login');
|
|
@ -1,11 +1,14 @@
|
|||
var React = require('react');
|
||||
var ComponentBroker = require('../ComponentBroker');
|
||||
|
||||
var RoomList = require('../organisms/RoomList');
|
||||
var RoomView = require('../organisms/RoomView');
|
||||
var MatrixToolbar = require('../molecules/MatrixToolbar');
|
||||
var RoomList = ComponentBroker.get('RoomList');
|
||||
var RoomView = ComponentBroker.get('RoomView');
|
||||
var MatrixToolbar = ComponentBroker.get('MatrixToolbar');
|
||||
var Login = ComponentBroker.get('Login');
|
||||
|
||||
// should be atomised
|
||||
var Loader = require("react-loader");
|
||||
|
||||
var Login = require('../templates/Login');
|
||||
|
||||
var mxCliPeg = require("../MatrixClientPeg");
|
||||
|
||||
|
|
Loading…
Reference in a new issue