You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
890 B
32 lines
890 B
import * as React from "react"; |
|
import * as ReactDOM from "react-dom"; |
|
import { AppContainer } from "react-hot-loader"; |
|
|
|
import App from "./components/App"; |
|
import { MqttApiClient } from "./mqtt"; |
|
import { Message, UiStore } from "./ui"; |
|
|
|
const client = new MqttApiClient(); |
|
client.start(); |
|
const device = client.getDevice("grinklers"); |
|
const uiStore = new UiStore(); |
|
uiStore.addMessage(new Message("asdf", "boo!", Message.Type.Error)); |
|
|
|
const rootElem = document.getElementById("app"); |
|
|
|
const doRender = (Component: typeof App) => { |
|
ReactDOM.render(( |
|
<AppContainer> |
|
<Component device={device} uiStore={uiStore} /> |
|
</AppContainer> |
|
), rootElem); |
|
}; |
|
|
|
doRender(App); |
|
|
|
if (module.hot) { |
|
module.hot.accept("app/components/App", () => { |
|
const NextApp = require<any>("app/components/App").default as typeof App; |
|
doRender(NextApp); |
|
}); |
|
}
|
|
|