1 | import React from 'react';
|
2 | import { render } from 'react-dom';
|
3 |
|
4 | import store from './store';
|
5 | import app from '@magento/peregrine/lib/store/actions/app';
|
6 | import Adapter from '@magento/venia-ui/lib/components/Adapter';
|
7 | import { registerSW } from './registerSW';
|
8 | import './index.css';
|
9 |
|
10 |
|
11 | const isServer = !globalThis.document;
|
12 |
|
13 |
|
14 | const origin = isServer
|
15 | ? process.env.MAGENTO_BACKEND_URL
|
16 | : globalThis.location.origin;
|
17 |
|
18 |
|
19 | const styles = new Set();
|
20 |
|
21 | const tree = <Adapter origin={origin} store={store} styles={styles} />;
|
22 |
|
23 | if (isServer) {
|
24 | // TODO: ensure this actually renders correctly
|
25 | import('react-dom/server').then(({ default: ReactDOMServer }) => {
|
26 | console.log(ReactDOMServer.renderToString(tree));
|
27 | });
|
28 | } else {
|
29 | render(tree, document.getElementById('root'));
|
30 | registerSW();
|
31 |
|
32 | globalThis.addEventListener('online', () => {
|
33 | store.dispatch(app.setOnline());
|
34 | });
|
35 | globalThis.addEventListener('offline', () => {
|
36 | store.dispatch(app.setOffline());
|
37 | });
|
38 | }
|
39 |
|
\ | No newline at end of file |