GeekPark/gpk_account

View on GitHub
frontend/src/components/admin/App.jsx

Summary

Maintainability
A
0 mins
Test Coverage
import React, { PropTypes } from 'react';

import BroadcastsIndex from './broadcasts/Index';
import BroadcastsNew from './broadcasts/New';

import Layout from './Layout';

const components = {
  'broadcasts/index': BroadcastsIndex,
  'broadcasts/new': BroadcastsNew,
};

class App extends React.Component {
  static propTypes = {
    server: PropTypes.object.isRequired,
  }

  static childContextTypes = {
    server: PropTypes.object.isRequired,
  }

  getChildContext() {
    return { server: this.props.server };
  }

  render() {
    const { controller, action } = this.props.server;
    const Child = components[`${controller}/${action}`];

    return (
      <div className="app">
        <Layout server={this.props.server}>
          <Child />
        </Layout>
      </div>
    );
  }
}

export default App;