import { Component, createComponentVNode } from 'inferno';
import { HashRouter, Route } from 'inferno-router';
import { VNodeFlags } from 'inferno-vnode-flags';
import { Home } from './modules/home';
import { extend } from 'para-utils';

export class App extends Component<any, any>{
  public render() {
    return (
      <HashRouter>
        {
          this.props.routes.map((route) => {
            return (
              <Route path={route.path} exact component={
                (props) => createComponentVNode(VNodeFlags.ComponentClass, route.component, extend({ pluginName: route.pluginName }, props))
              } />
            );
          })
        }
        <Route exact path="/" component={(props) => <Home {...props} />} />
      </HashRouter>
    );
  }
}