sprinklers3/app/index.tsx

34 lines
874 B
TypeScript
Raw Normal View History

import * as React from "react";
import * as ReactDOM from "react-dom";
2017-08-29 22:42:56 -06:00
import { AppContainer } from "react-hot-loader";
import App from "@app/components/App";
2017-10-09 22:09:42 -06:00
import { ProvideState, WebApiState } from "@app/state";
// import log from "@common/logger";
2017-09-27 19:20:50 -06:00
2017-10-09 22:09:42 -06:00
// Object.assign(log, { name: "sprinklers3/app", level: "debug" });
2017-09-10 12:30:23 -06:00
2017-10-05 15:15:50 -06:00
const state = new WebApiState();
2017-09-10 12:30:23 -06:00
state.start();
const rootElem = document.getElementById("app");
2017-09-10 12:30:23 -06:00
const doRender = (Component: React.ComponentType) => {
2017-08-29 23:21:36 -06:00
ReactDOM.render((
<AppContainer>
2017-09-10 12:30:23 -06:00
<ProvideState state={state}>
<Component />
</ProvideState>
2017-08-29 23:21:36 -06:00
</AppContainer>
), rootElem);
};
doRender(App);
if (module.hot) {
module.hot.accept("@app/components/App", () => {
const NextApp = require<any>("@app/components/App").default as typeof App;
2017-08-29 23:21:36 -06:00
doRender(NextApp);
2017-05-06 15:39:25 -06:00
});
}