UNPKG

react-zeanium-ui-ui

Version:

Zeanium UI Framework for React.js

58 lines (55 loc) 1.27 kB
require('./URLRouter.less'); var React = require('react'); var ErrorPage = require('../view/ErrorPage'); var RouterMapping = require('../utils/RouterMapping'); module.exports = React.createClass({ displayName:'URLRouter', getInitialState:function(){ return { view: null, argv: null } }, componentDidMount:function(){ var _self = this, _view = null, _mapping = RouterMapping.create(this.props.mapping||{}); this._router = new RestfulRouter(function (router){ router.error(function (req){ _self.setState({ view: ErrorPage, argv: { request: req } }); }); _mapping.each(function (path, mapping){ (function (path, mapping) { router.get(path, function(req){ mapping.request = req; _view = mapping.mappings.index || mapping.view; if(_self.state.view === _view){ if(mapping.mapping=='{*}'){ return; } _self.setState({ view: _view, argv: mapping }); } else { _self.setState({ view: _view, argv: mapping }); } }); })(path, mapping); }); }); }, render: function(){ return ( <div className="c-url-router"> {this.state.view && <this.state.view {...this.state.argv} />} </div> ); } });