@@ -3,17 +3,14 @@ import { render } from 'react-dom';
33import { ThemeProvider } from 'styled-components' ;
44import { Router } from 'react-router-dom' ;
55import { ApolloProvider } from 'react-apollo' ;
6- import { reaction } from 'mobx' ;
76import { ApolloProvider as HooksProvider } from '@apollo/react-hooks' ;
8- import { Provider } from 'mobx-react' ;
97import _debug from '@codesandbox/common/lib/utils/debug' ;
8+ import { createOvermind } from 'overmind' ;
109import {
1110 initializeSentry ,
1211 logError ,
1312} from '@codesandbox/common/lib/utils/analytics' ;
1413import '@codesandbox/common/lib/global.css' ;
15-
16- import store , { Signals , Store } from 'app/store' ;
1714import history from 'app/utils/history' ;
1815import { client } from 'app/graphql/client' ;
1916import registerServiceWorker from '@codesandbox/common/lib/registerServiceWorker' ;
@@ -29,12 +26,11 @@ import { isSafari } from '@codesandbox/common/lib/utils/platform';
2926
3027// eslint-disable-next-line
3128import * as childProcess from 'node-services/lib/child_process' ;
32- import { Controller } from '@cerebral/mobx-state-tree' ;
3329import { Routes as App } from './pages' ;
3430import { Provider as OvermindProvider } from './overmind/Provider' ;
31+ import { config } from './overmind' ;
3532import './split-pane.css' ;
3633import { getTypeFetcher } from './vscode/extensionHostWorker/common/type-downloader' ;
37- import overmindLogo from './overmind.png' ;
3834import { vscode } from './vscode' ;
3935import {
4036 initializeThemeCache ,
@@ -72,7 +68,7 @@ window.__isTouch = !matchMedia('(pointer:fine)').matches;
7268let getState ;
7369let getSignal ;
7470
75- async function boot ( state , signals , overmind ) {
71+ async function boot ( overmind ) {
7672 requirePolyfills ( ) . then ( ( ) => {
7773 if ( isSafari ) {
7874 import ( 'subworkers' ) ;
@@ -122,27 +118,17 @@ async function boot(state, signals, overmind) {
122118
123119 try {
124120 render (
125- < Signals . Provider value = { signals } >
126- < Store . Provider value = { state } >
127- < Provider
128- store = { state }
129- signals = { signals }
130- reaction = { ( cbA , cbB ) => reaction ( ( ) => cbA ( state ) , cbB ) }
131- >
132- < ApolloProvider client = { client } >
133- < OvermindProvider value = { overmind } >
134- < HooksProvider client = { client } >
135- < ThemeProvider theme = { theme } >
136- < Router history = { history } >
137- < App />
138- </ Router >
139- </ ThemeProvider >
140- </ HooksProvider >
141- </ OvermindProvider >
142- </ ApolloProvider >
143- </ Provider >
144- </ Store . Provider >
145- </ Signals . Provider > ,
121+ < ApolloProvider client = { client } >
122+ < OvermindProvider value = { overmind } >
123+ < HooksProvider client = { client } >
124+ < ThemeProvider theme = { theme } >
125+ < Router history = { history } >
126+ < App />
127+ </ Router >
128+ </ ThemeProvider >
129+ </ HooksProvider >
130+ </ OvermindProvider >
131+ </ ApolloProvider > ,
146132 rootEl
147133 ) ;
148134 } catch ( e ) {
@@ -155,85 +141,24 @@ async function initialize() {
155141 /*
156142 Configure Cerebral and Overmind
157143 */
158- let signals = null ;
159- let state = null ;
160- let overmind = null ;
161-
162- window . useOvermind = useIt => {
163- if ( typeof useIt === 'undefined' ) {
164- return localStorage . getItem ( 'overmind' ) ;
165- }
166-
167- localStorage . setItem ( 'overmind' , JSON . stringify ( useIt ) ) ;
168- location . reload ( true ) ;
169-
170- return useIt ;
171- } ;
172144
173- if ( localStorage . getItem ( 'overmind' ) === 'true' ) {
174- await Promise . all ( [ import ( 'overmind' ) , import ( './overmind' ) ] ) . then (
175- modules => {
176- const createOvermind = modules [ 0 ] . createOvermind ;
177- const config = modules [ 1 ] . config ;
178-
179- overmind = createOvermind ( config , {
180- devtools :
181- ( window . opener && window . opener !== window ) || ! window . chrome
182- ? false
183- : 'localhost:3031' ,
184- name :
185- 'CodeSandbox - ' +
186- ( navigator . userAgent . indexOf ( 'Chrome/76' ) > 0
187- ? 'Chrome'
188- : 'Canary' ) ,
189- logProxies : true ,
190- } ) ;
191-
192- getState = path =>
193- path
194- ? path . split ( '.' ) . reduce ( ( aggr , key ) => aggr [ key ] , overmind . state )
195- : overmind . state ;
196- getSignal = path =>
197- path . split ( '.' ) . reduce ( ( aggr , key ) => aggr [ key ] , overmind . actions ) ;
198-
199- const logoContainer = document . createElement ( 'div' ) ;
200- logoContainer . style . position = 'fixed' ;
201- logoContainer . style . bottom = '30px' ;
202- logoContainer . style . left = '10px' ;
203- logoContainer . style . zIndex = '999999' ;
204- logoContainer . style . width = '40px' ;
205- logoContainer . style . height = '40px' ;
206- logoContainer . style . borderRadius = '3px' ;
207- logoContainer . style . backgroundImage = `url(${ overmindLogo } )` ;
208- logoContainer . style . backgroundSize = 'cover' ;
209- logoContainer . style . backgroundSize = 'cover' ;
210- document . body . appendChild ( logoContainer ) ;
211- }
212- ) ;
213- } else {
214- let Devtools = null ;
215-
216- if ( process . env . NODE_ENV !== 'production' ) {
217- Devtools = require ( 'cerebral/devtools' ) . default ; // eslint-disable-line
218- }
219-
220- const controller = Controller ( store , {
221- devtools :
222- Devtools &&
223- Devtools ( {
224- host : 'localhost:8383' ,
225- reconnect : false ,
226- } ) ,
227- } ) ;
228-
229- const controllerProvided = controller . provide ( ) ;
230-
231- state = controllerProvided . store ;
232- signals = controllerProvided . signals ;
145+ const overmind = createOvermind ( config , {
146+ devtools :
147+ ( window . opener && window . opener !== window ) || ! window . chrome
148+ ? false
149+ : 'localhost:3031' ,
150+ name :
151+ 'CodeSandbox - ' +
152+ ( navigator . userAgent . indexOf ( 'Chrome/76' ) > 0 ? 'Chrome' : 'Canary' ) ,
153+ logProxies : true ,
154+ } ) ;
233155
234- getState = controller . getState . bind ( controller ) ;
235- getSignal = controller . getSignal . bind ( controller ) ;
236- }
156+ getState = path =>
157+ path
158+ ? path . split ( '.' ) . reduce ( ( aggr , key ) => aggr [ key ] , overmind . state )
159+ : overmind . state ;
160+ getSignal = path =>
161+ path . split ( '.' ) . reduce ( ( aggr , key ) => aggr [ key ] , overmind . actions ) ;
237162
238163 window . getState = getState ;
239164 window . getSignal = getSignal ;
@@ -334,7 +259,7 @@ async function initialize() {
334259 // }
335260 // );
336261 }
337- boot ( state , signals , overmind ) ;
262+ boot ( overmind ) ;
338263 }
339264 ) ;
340265 }
0 commit comments