mnml/client/src/main.jsx
2018-09-22 21:59:23 +10:00

55 lines
1.3 KiB
JavaScript

const preact = require('preact');
const jdenticon = require('jdenticon');
const { Provider } = require('preact-redux');
const { createStore, combineReducers } = require('redux');
const reducers = require('./reducers');
const actions = require('./actions');
const fizzyText = require('../lib/fizzy-text');
const createSocket = require('./socket');
const CrypContainer = require('./components/cryp.container');
const LoginContainer = require('./components/login.container');
const Navbar = require('./components/navbar');
// Redux Store
const store = createStore(
combineReducers({
account: reducers.accountReducer,
cryp: reducers.crypReducer,
ws: reducers.wsReducer,
}),
);
store.subscribe(() => console.log(store.getState()));
const ws = createSocket(store);
store.dispatch(actions.setWs(ws));
// tells jdenticon to look for new svgs and render them
// so we don't have to setInnerHtml or manually call update
jdenticon.config = {
replaceMode: 'observe',
};
const Cryps = () => (
<section>
<Navbar />
<div id="fizzytext" />
<LoginContainer />
<CrypContainer />
</section>
);
const Main = () => (
<Provider store={store}>
<Cryps />
</Provider>
);
preact.render(<Main />, document.body);
fizzyText('cryps');