zordius/fluxex

View on GitHub
examples/02-routing/components/Html.jsx

Summary

Maintainability
A
1 hr
Test Coverage
var React = require('react');
var Fluxex = require('fluxex');
var Product = require('./Product.jsx');
var TopProducts = require('./TopProducts.jsx');

var Html = React.createClass({
    mixins: [
        Fluxex.mixin,
        require('fluxex/extra/storechange'),
        require('fluxex/extra/pjax'),
        {listenStores: ['page']}
    ],

    getStateFromStores: function () {
        return {
            route_name: this.getStore('page').getRouteName()
        };
    },

    render: function () {
        var Routing = {
            top: <TopProducts />,
            product: <Product />
        };
        var body = Routing[this.state.route_name];

        return (
        <html>
         <head>
          <meta charSet="utf-8" />
          <meta name="viewport" content="width=device-width, user-scalable=no" />
          <Fluxex.Title />
         </head>
         <body onClick={this.handleClickLink}>
          <div>
           {body}
          </div>
          <hr />
          <a href="/main">Go to Main...</a>
          <Fluxex.InitScript />
         </body>
        </html> 
        );
    }
});

module.exports = Html;